1.函数的调用可分为有参函数调用和无参函数调用
函数调用时的一般形式分别如下:
(1)函数名(实参列表)
(2)函数名()
注意:定义无参函数时圆括号“()”不能省略。
函数调用时的语法要求如下:
(1)调用函数时,函数名必须与所调用的函数名字完全一致。
(2)实际参数的个数必须与形式参数的个数一致。实参可以是表达式,在类型上应按位置与形参一一对应匹配。
(3)C语言规定:函数必须先定义,后调用(函数的返回值类型为int或char时除外)。
(4)C程序中,函数可以直接或间接地自己调用自己,称为递归调用。
【程序实例】
以上程序中定义了名为f()的整型函数,它有两个int类型的形参。在main()函数中调用了f()函数。
2.函数的声明及其位置
在C语言中,除了主函数main外,对于用户定义的函数要遵循“先定义,后使用”的原则。凡是未在调用前定义的函数,C编译程序都默认函数的返回值为int类型。对于返回值为其他类型的函数,若把函数的定义放在调用之后,应该在调用之前对函数进行声明。
函数的“定义”和“声明”不是一回事。“定义”是指对函数功能的确立,包括指定函数名、函数值类型、形参及其类型、函数体等,它是一个完整的、独立的函数单位。而函数“声明”的作用主要是利用它在程序的编译阶段对调用函数的合法性进行全面检查。它把函数名、函数类型以及形参的类型、个数和顺序告知编译系统,以便在调用该函数时系统按此进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)。
(1)函数声明的一般形式。
类型名 函数名(参数类型1,参数类型2,…)
或者(www.xing528.com)
类型名 函数名(参数类型1参数名1,参数类型2参数名2,…)
例如:函数
doubleadd(doublex,doubley)
{…}
可以声明为:
doubleadd(double,double);
或者
doubleadd(doublex,doubley);
(2)说明。
①函数声明中的参数名可以省略,可以是任意合法的用户标识符,不必与函数定义中的形参名一致,也可以与程序中的其他用户标识符同名。
②函数声明语句中的类型必须与函数返回值的类型一致。
③对函数进行声明,能使C语言的编译程序在编译时进行有效的类型检查。参数类型、顺序和个数要求与函数定义中的保持一致。
④如果函数的返回值是整型或字符型,可以不必进行声明,系统对它们自动按整型声明。
(3)函数声明的位置。
由于函数声明的位置不同,可将被调用函数的声明分为两种方式:外部声明和内部声明。
在调用函数内对被调函数所作的声明称为内部声明,也称为局部声明;在函数外进行的函数声明称为外部声明。如果声明在程序最前端,外部声明又称为全局声明。内部声明过的函数只能在声明它的调用函数内调用。外部声明过的函数,从声明处到本程序文件结束都可以被调用。内部声明应放在调用函数的数据描述部分,外部声明可以出现在程序中的任何函数外。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。