购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4.3 对被调用函数的说明

与使用变量一样,在调用一个函数之前(包括标准库函数),必须对该函数的类型进行说明,即“先说明,后调用”。如果调用的是库函数,一般应在程序的开始处用预处理命令#include将有关函数说明的头文件包含进来。例如前面例子中经常出现的预处理命令#include<stdio.h>,就是将与库输出函数printf()有关的头文件stdio.h包含到程序文件中来。头文件“stdio.h”中有关于库输入/输出函数的一些说明信息,如果不使用这个包含命令,库输入/输出函数就无法被正确地调用。

如果调用的是用户自定义函数,而且该函数与调用它的主调函数在同一个文件中,一般应该在主调函数中对被调用函数的类型进行说明。函数说明的一般形式为:

类型标识符 被调用的函数名(形式参数表);

其中,“类型标识符”说明函数返回值的类型。

“形式参数表”中说明各个形式参数的类型。

需要注意的是,函数的说明与函数的定义是完全不同的。函数的定义是对函数功能的确立,它是一个完整的函数单位。而函数的说明,只是说明函数返回值的类型。两者在书写形式上也不一样,函数说明结束时在圆括号的后面需要有一个分号“;”作为结束标志,而在函数定义时,被定义函数名的圆括号后面没有分号“;”,即函数定义还未结束,后面应接着书写形式参数说明和被定义的函数体部分。

如果被调函数是在主调函数前面定义的,或者已经在程序文件的开始处说明了所有被调函数的类型,在这两种情况下可以不必再在主调函数中对被调函数进行说明。也可以将所有用户自定义函数的说明另存为一个专门的头文件,需要时用#include将其包含到主程序中去。

C语言程序中不允许在一个函数定义的内部包括另一个函数的定义,即不允许嵌套函数定义。但是允许在调用一个函数的过程中包含另一个函数调用,即嵌套函数调用在C语言程序中是允许的。

例2-25 函数调用的例子。

程序执行结果:

在这个例子中,主函数main()先调用库函数sacnf(),从键盘输入两个值分别赋值给局部变量a和b,然后调用库函数printf()将a、b中较大者输出。在调用库函数printf()的过程中又调用了自定义功能函数Max(),将键盘输入的a、b的值作为实际参数传递给Max()函数中的形式参数x、y。在Max()函数中对实际输入值进行比较以获得较大者的值。这也是一个嵌套函数调用的例子,图2.7是例2-25程序中函数嵌套调用的执行过程。

图2.7 函数的嵌套调用过程 BsmCFbXuR3rg86XzXg0ZJ9fRYEO6SY0rDiLSvm3NBlMqoA5KNR3BlNKdXYz4mZA6

点击中间区域
呼出菜单
上一章
目录
下一章
×