1、在调用自己定义函数,一般应在主调函数中对被调函数做声明,即向编译系统声明将要调用此函数。声明的作用是把函数的名字、函数 类型以及形式参数的类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照,检查其正确性。
声明一般采用原形法,有两种形式:
1)函数类型 函数名称(参数类型1,参数类型2,参数类型3,……);
该形式中未给出参数的名称。
2)函数类型 函数名称(参数类型1 形式参数名称1,参数类型2 形式参数名称2,……);
函数的声明在表示形式上只给函数的首部,再加一个分号。声明一般放在主调函数的说明部分。
以下情况对被调用的函数可以不作声明:
1)函数的定义在调用之前;
2)在主调函数外(之前)对被调函数已经作了声明,在主调函数中不必对所调用的函数再作声明。
2、函数的定义是指对函数的功能的确立,包括指定函数的名称,函数值的类型、形式参数及其类型、函数体等,它是一个完整的、独立的函数单位。声明只给出函数的首部,不给函数体部分。
3、函数的调用,给出函数名称、实际参数。调用的方式有:
1)函数语句,函数调用是一个单独的可执行语句。
2)函数表达式,函数调用是表达式的一个组成部分。
3)函数参数,函数调用作为另外一个函数的参数。
例:
#include"stdio.h"
main()
{ float fd(float x); /* 此语句为函数的声明,只给出函数的首部*/
float a,b;
scanf("%f",&a);
b=fd(a) ; /* fd(a)为函数的调用,给出函数的名称和实际参数*/
printf("%f",b) ;
}
/*函数的定义,即给出函数首部,又给出函数体*/
float fd(float x)
{ return(x*x);
}