20-函数变体
2.4.2 函数变体
有些函数需要多项信息。这些函数使用多个参数,参数间用逗号分开。例如,数学函数pow()接受两个参数,返回值为以第一个参数为底,第二个参数为指数的幂。该函数的原型如下:
double pow(double, double); // prototype of a function with two arguments
要计算5的8次方,可以这样使用该函数:
answer = pow(5.0, 8.0); // function call with a list of arguments
另外一些函数不接受任何参数。例如,有一个C库(与cstdlib或stdlib.h头文件相关的库)包含一个rand()函数,该函数不接受任何参数,并返回一个随机整数。该函数的原型如下:
int rand(void); // prototype of a function that takes no arguments
关键字void明确指出,该函数不接受任何参数。如果省略void,让括号为空,则C++将其解释为一个不接受任何参数的隐式声明。可以这样使用该函数:
myGuess = rand(); // function call with no arguments
注意,与其他一些计算机语言不同,在C++中,函数调用中必须包括括号,即使没有参数。
还有一些函数没有返回值。例如,假设编写了一个函数,它按美元、美分格式显示数字。当向它传递参数23.5时,它将在屏幕上显示$23.50。由于这个函数把值发送给屏幕,而不是调用程序,因此不需要返回值。可以在原型中使用关键字void来指定返回类型,以指出函数没有返回值:
void bucks(double); // prototype for function with no return value
由于它不返回值,因此不能将该函数调用放在赋值语句或其他表达式中。相反,应使用一条纯粹的函数调用语句:
bucks(1234.56); // function call, no return value
在有些语言中,有返回值的函数被称为函数(function);没有返回值的函数被称为过程(procedure)或子程序(subroutine)。但C++与C一样,这两种变体都被称为函数。