C语言函数的结构
关于函数的结构在第1章讲述c程序的结构时已作基本介绍,这里再作进一步探讨。
函数由函数头和函数体两部分组成。
1.函数头
函数头有经典与现代两种形式,现代形式称之为函数原型。
经典形式:
函数属性函数类型 函数名(函数参数表) 。
参数说明
如:static float f1(a,b,c)/*属性static,类型float,函数名f1,函数参数表\"a,b,c\"*/
float a,b,c;/*参数说明*/
现代形式:
函数属性函数类型 函数名(参数说明)
如:static double f2(float x,float y,float z)
说明:
(1)函数的属性或称函数的存储属性包括内部函数与外部函数两种,内部函数用保留字static描述,又称静态函数。外部函数用保留字exter’n标识。缺省函数的属性,默认为外部函数。
外部函数可以供构成程序的所有文件中的函数调用,内部函数只有同一程序文件中的函数才能调用。
(2)函数类型给出函数返回值的数据类型,缺省时表示int型。
当函数没有返回值时,函数为无类型,标准C中用保留字void标识无类型(或称空类型),此时函数相当于PASCAL语言中的过程子程序。
(3)函数名可以是任何合法的标识符,是程序设计人员为函数取的名字。函数的名字实际上表示的是函数被调用时的入口地址。
(4)函数中的参数称为形式参数(简称形参),参数的主体作用是在函数被调用时实现主调函数与被调函数之间的数据传递,同时参数在函数体可同普通变量一样使用。
注意在现代定义形式中,每个参数必须分别指明其数据类型,即使是相同类型的参数也必须分开说明。
(5)函数可以无参数,此时称为无参函数。
主函数也可以有参数,后面介绍。
(6)鼓励读者采用函数原型的现代形式。本书前两部分还是采用传统形式,第三部分采用现代形式。
2.函数体
函数体由服务于函数的数据说明与执行语句两部分组成。数据说明包括数据定义和数据申明,完成数据描述,执行语句完成操作描述。TURBO C中数据说明必须位于函数体或复合语句的开始处,但C++中可根据需要随时定义。
一个函数的函数体可以为空,此时的函数称为空函数,空函数常用于程序调试。
空函数的形式为:
void f()
{)
这也是C语言中最小的函数。