6.2 函数定义
函数定义由函数头和函数体两部分组成,其基本形式如下所示。
返回类型函数名(参数列表) { 函数体 }
函数定义通过这一结构告诉编译器要进行的操作。
6.2.1 函数头
第一行“返回值类型函数名(参数列表)”称为函数头,定义了函数和调用它的函数之间的接口。
1.函数名
上级函数通过函数名实现对函数的调用,函数名是一个符合C++语法要求的标识符。定义函数名与定义变量名的规则是一样的,但应尽量避免用下划线开头,因为编译器会常常定义一些以下划线开头的变量或函数。函数名应尽可能反映函数的功能,做到“望文知义”。
2.参数列表
0个或多个变量,用于向函数传送数值或从函数带回数值,每个参数都应采取“类型变量名”形式,参数列表中的参数称为形式参数,简称形参。编译器并不会在函数定义时为这些参数分配内存空间,只有在函数调用时,向函数传递了实参后,这些参数才称为程序实体,形参相当于剧本中的角色,而实参是演员,在代码6.1中,函数定义中的x和y是剧本角色,而变量num1和num2是演员,num1扮演了x的角色,num2扮演了y的角色。
如果参数列表中参数个数为0,我们称之为无参函数,无参函数可以定义为如下所示。
返回类型函数名(){……}或 返回类型函数名(void){……}
3.返回类型
指定函数用return返回的函数值的类型,如果函数没有返回值,返回类型应为void。C++对返回值的类型有一定的限制,它不能是数组,但可以是其他任何类型,如整型、浮点型及指针,甚至是结构和共用体等。
注意
C++不允许返回数组,但却可以把数组当做结构的组成部分返回。