包括函数名、函数的类型及形式参数表。
(1)函数名。用标识符表示,用来标识一个函数的名字,函数名后面必须有一对圆括号。
(2)函数类型。函数名前的函数类型是指函数返回值的类型。如果函数是整型,int可以省略不写;如果函数无返回值,以void型。
(3)形式参数表。圆括号内为形式参数列表部分,其中的参数称为形式参数,他包括函数的自变量部分。每个参数前都应用相应的类型标识符对参数进行说明,有多个参数时用逗号分开。如果是无参数函数,形式参数列表部分为空,但一对()不能省略。
函数体是函数头下面最外层一对花括号内的代码,他是由一系列语句构成的,用以实现函数的功能,函数体内可以有函数说明、变量说明及可执行语句。
函数体也可以是一对空的话括号,例如:
viod function(void)
{
}
这是一个“空函数”,调用它并不产生有效的操作,但却是一个符合C语言语法的合法函数。
(1)标准库函数的说明。可在程序开头部分用#include进行文件包含,printf()和sqrt()等函数就属于这种形式。用在程序开头部分用下面的语句进行包含。
#include
#include
(2)自定义函数的说明。如函数与主调函数在同一程序文件中,在调用前如下语句进行说明:
类型说明符 函数名(类型说明符 形参变量1,类型说明符 形参变量2,...);
函数声明按其位置不同,作用范围也不同。
(1)在所有函数外部进行说明。
(2)在函数内部进行说明。
主调函数传递来的数据称为实际参数(实参);
定义函数是,函数名后面的参数称为形式参数(形参);
调用函数时,将实参的值计算出来传递给对应的形参。实参可以是常量或表达式,也可以是函数调用语句,如:
Calculate(4,1000) 常量作为函数参数
Calculate(5,x*y) 表达式作为函数参数
Calculate(abs_sum(x,y),z) 函数作为函数的参数
在调用时给出的实参是变量的地址值,此时函数参数(形参)应该是指针变量。
voidswap(int * m,int * n);
main()
{
int a,b;
swap(&a,&b);
}
数组用作函数参数有两种形式,一种是把数组元素(下标变量)作为函数的实参使用;另一种是把数组名作为函数的形参和实参使用。
得到函数返回值的方法是使用return语句。一般形式为:
return(表达式)
完成以下功能:返回一个值给主调函数;释放在函数的执行过程中分配的所有内存空间;结束被调函数的运行,将流程控制权交给主调函数。
在进行函数调用之前首先要对函数进行声明,在进行C程序函数开发与使用的过程中要始终牢记“先声明,后使用”的原则。对被调用函数的声明有两种方式:外部声明和内部声明。
被调函数的声明具体形式为:
函数类型 函数名();
main函数是主函数,它可以调用其他函数,而不允许被其他函数调用。
函数调用是通过函数调用语句来实现的。
c语言中,函数调用的一般形式为:
函数名([实际参数列表]) 实际参数列表是函数入口参数的实际值。
(1)函数表达式。函数作为表达式的一项,出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。
c=add(a+b);
(2)函数语句。c语言中的函数可以只进行某操作而不返回函数值,这时的函数调用可以作为一条独立的语句。
function();
(3)函数实参。函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。
d=add(a,add(b,c));