5.1 函数的定义
每个C语言程序都至少有一个函数,即主函数main(),它可以用来实现一定的功能。C语言程序中,除了主函数,还可以包含其他自定义的函数。在使用函数时,首先要定义函数,要指明函数的类型、函数的名字、函数的参数及类型、函数要实现的功能等。在定义函数时,通常是为了实现某一功能而定义某个函数。
函数在定义时,函数的名字要遵循标识符命名规则,并且函数名字通常要反映它所实现的功能。函数的一般形式为:
类型名 函数名(类型名形式参数,类型名形式参数,…)
{
函数体
}
函数类型名规定了函数返回值的类型,包括整型、浮点型、字符型等。
函数名通常反映函数要实现的功能,可以通过函数名调用函数。
函数的参数可以有(有参函数)也可以没有(无参函数)。如果有参数,则在各参数之间要用逗号分隔,即使没有参数,也不能省略括号。参数的作用是在调用函数时向各参数传递数据。如果没有参数,在调用函数时就不需要传递数据了。
函数体通常是要实现的函数的功能。要用大括号将函数体括起来,函数体可以没有语句,成为空函数,即什么功能也不实现。函数体如果有语句,在每句后面要用“;”表示一句语句。(https://www.daowen.com)
例5-1 定义一个求两整数之和的函数add。
程序如下:


在函数定义时,定义了函数类型为整型,因为两整数之和一定也是整型,所以函数类型定义为整型int。函数名应反映函数的功能,因此用相加求和的意义add来命名函数名,或者使用sum也可以。在函数名后的括号里有两个参数a和b,这两个参数类型为整型,它们代表要求和的两个整数,中间用逗号分隔。函数体放在大括号里,只有三句语句。函数体定义了整型变量c(用a与b的和赋值给c),return c表示将变量c的值作为函数值返回。这个函数的功能就是实现两个参数a和b的求和,并且函数的返回值就是两个整数之和。如果使用return返回函数值,那么在定义函数时就必须有函数类型。如果没有return返回函数值,在定义函数时可以用void作为函数类型,即空类型。
上面的程序也可以简化为:

这里直接用return将两个变量a和b的和返回给函数,作为函数值。
注意:函数的定义是独立的,也就是说,不能在一个函数里定义另一个函数,但是可以在一个函数里调用另一个函数或调用几个函数,也可以调用多次其他函数。