函数的定义与调用
函数是一种定义好的、可重用的功能模块,通过函数可以将一个模块的算法用 C++ 语言描述出来。函数名是功能模块的名字,函数的参数是计算所需要的数据和条件,函数的返回值是需要返回的计算结果。
函数的定义形式为:
函数名 (形式参数表) {
语句序列
return 类型标识符;
}
其中,函数名是函数的名称,形式参数表是函数的参数列表,语句序列是函数体中的语句,return 语句是函数的返回语句,类型标识符是函数的返回值类型。
函数的调用需要先声明函数原型,如果函数定义在调用点之前,可以不另外声明;如果函数定义在调用点之后,必须要在调用函数前声明函数原型。函数原型的形式为:
类型标识符 被调用函数名(含类型说明的形参表)
函数调用形式为:
函数名(实参列表)
函数的参数传递有两种方式:值传递和引用传递。值传递是传递参数值,即单向传递;引用传递可以实现双向传递。常引用作参数可以保障实参数据的安全。
内联函数可以使用关键字 inline 声明,编译时在调用出用函数体进行替换,节省了参数传递、控制转移等开销。
constexpr 函数是一种特殊的函数,可以在编译时计算结果,constexpr 修饰的函数在其所有参数都是 constexpr 时,一定返回 constexpr。
带默认参数值的函数可以预先设置默认的参数值,调用时如给出实参,则采用实参值,否则采用预先设置的默认参数值。
函数重载是 C++ 语言的一个特性,允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载方便使用、便于记忆。
C++ 系统函数是 C++ 语言提供的一些常用函数,使用系统函数时要包含相应的头文件。
通过对函数的定义和调用,可以编写更加灵活、更加高效的程序。例如,编写一个求 x 的 n 次方的函数,可以使用递归调用来实现;编写一个将二进制数转换为十进制数的函数,可以使用函数调用来实现;编写一个计算 π 的值的函数,可以使用 arctan 函数来实现。
函数是 C++ 语言中的一种重要的编程单元,通过函数可以实现更加灵活、更加高效的编程。