对被调用函数的声明和函数原型
标签: C语言
学习人数: 15.4k

在主调函数中调用某函数之前应对该被调函数进行说明(声明),这与使用变量之前要先进行变量说明是一样的。在主调函数中对被调函数作说明的目的是使编译系统知道被调函数返回值的类型,以便在主调函数中按此种类型对返回值作相应的处理。

其一般形式为:

类型说明符 被调函数名(类型 形参,类型 形参…);  

或为:

类型说明符 被调函数名(类型,类型…);   

括号内给出了形参的类型和形参名,或只给出形参类型。这便于编译系统进行检错,以防止可能出现的错误。

例 main 函数中对 max 函数的说明为:

int max(int a,int b);  

或写为:

int max(int,int);  

 

C语言中又规定在以下几种情况时可以省去主调函数中对被调函数的函数说明。

1)如果被调函数的返回值是整型或字符型时,可以不对被调函数作说明,而直接调用。这时系统将自动对被调函数返回值按整型处理。样例中的主函数中未对函数 s 作说明而直接调用即属此种情形。

 

2) 当被调函数的函数定义出现在主调函数之前时,在主调函数中也可以不对被调函数再作说明而直接调用。例如前面的样例中,函数 max 的定义放在 main 函数之前,因此可在 main 函数中省去对 max 函数的函数说明 int max(int a,int b)。

 

3) 如在所有函数定义之前,在函数外预先说明了各个函数的类型,则在以后的各主调函数中,可不再对被调函数作说明。例如:

char str(int a);  
float f(float b);  
main()  
{  
    ……  
}  
char str(int a)  
{  
    ……  
}  
float f(float b)  
{  
    ……  
}  

其中第一,二行对 str 函数和 f 函数预先作了说明。因此在以后各函数中无须对 str 和 f 函数再作说明就可直接调用。

 

4) 对库函数的调用不需要再作说明,但必须把该函数的头文件用 include 命令包含在源文件前部。
 

登录查看完整内容


课后作业

掌握本节内容


登录后开始许愿

暂无评论,来抢沙发