[整理]C语言函数说明和定义

函数的一般形式是:
type-specifier function_name(parameter list) parameter declarations{
   body of the function
}

1.类型说明符定义了函数中return语句返回值的类型,该返回值可以是任何有效类型。假如没有类型说明符出现,函数返回一个整型值。

   当一个函数没有明确说明类型时, C语言的编译程序自动将整型( i n t)作为这个函数的缺省类型,缺省类型适用于很大一部分函数。

   当有必要返回其它类型数据时,需要分两步处理:

  (1)首先,必须给函数以明确的类型说明符;

  (2)其次,函数类型的说明必须处于对它的首次调用之前。只有这样,C编译程序才能为返回非整型的值的函数生成正确代码。

2.返回非整型数据的函数被使用之前,必须把它的类型向程序的其余部分说明。

   若不这样做,C语言的编译程序就认为函数是返回整型数据的函数,调用点又在函数类型说明之前,编译程序就会对调用生成错误代码。

   为了防止上述问题的出现,必须使用一个显式的函数说明语句,通知编译器程序这个函数返回什么值。

3.显式的函数说明语句可以是调用函数外部,也可以是内部。

#include<stdio.h>

double func1();//函数说明
double func2();//函数说明

int main(void)
{    
    double ret;

    ret= func1();
    printf("%f",ret);

    ret= func2();
    printf("%f",ret);

    return 0;
}

double func1( ){//函数定义
    return 2.1;
}

double func2( ){//函数定义
    return 3.2;
}
#include<stdio.h>

int main(void)
{    
    double ret;

    double func1();//函数说明
    double func2();//函数说明

    ret= func1();
    printf("%f",ret);

    ret= func2();
    printf("%f",ret);

    return 0;
}

double func1( ){//函数定义
    return 2.1;
}

double func2( ){//函数定义
    return 3.2;
}

1.一般情况下,函数在调用子函数时,子函数必须先声明,要不会报错。(一般都将函数的声明放在一头文件里)

2.如若子函数为返回值是int时,可不用声明,因为编译器会为子函数默认一个声明,返回值为int类型的,所以子函数定义可放在任意外部的地方。

3.static修饰的函数作用域为从声明/定义处到源文件结尾处为止。

原文地址:https://www.cnblogs.com/Benoly/p/3789403.html