被调用函数的声明和函数原型
在主调函数中调用某函数之前应对该被调函数进行说明(声明),这与使用变量之前要
先进行变量说明是一样的。在主调函数中对被调函数作说明的目的是使编译系统知道被调函
数返回值的类型,以便在主调函数中按此种类型对返回值作相应的处理。
其一般形式为:
类型说明符 被调函数名(类型 形参,类型 形参…);
或为:
类型说明符 被调函数名(类型,类型…);
括号内给出了形参的类型和形参名,或只给出形参类型。这便于编译系统进行检错,以
防止可能出现的错误。
例 8.1 main 函数中对 max 函数的说明为:
int max(int a,int b);
或写为:
int max(int,int);
C语言中又规定在以下几种情况时可以省去主调函数中对被调函数的函数说明。
1) 如果被调函数的返回值是整型或字符型时,可以不对被调函数作说明,而直接调用。
这时系统将自动对被调函数返回值按整型处理。例 8.2 的主函数中未对函数 s 作说
明而直接调用即属此种情形。
2) 当被调函数的函数定义出现在主调函数之前时,在主调函数中也可以不对被调函数
再作说明而直接调用。例如例 8.1 中,函数 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 函数预先作了说明。因此在以后各函数中无须对
谭浩强 C 语言程序设计 2001 年 5 月 1 日
str 和 f 函数再作说明就可直接调用。
4) 对库函数的调用不需要再作说明,但必须把该函数的头文件用 include 命令包含在
源文件前部。
8.5 函数的嵌套调用
C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下
一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。这样就出
现了函数的嵌
松语文学免费小说阅读_www.16sy.com