C++学习之路——函数部分(函数原型问题)

翻译:C++Primer.Plus(第三版)

例:
.#include

void cheers(int);
double cube(double x);

int main()
{
using namespace std;
cheers(5);
cout << “Give me a number: “;
double side;
cin >> side;
double volume = cube(side);
cout << “A ” << side << ” foot cube has a volume of “;
cout << volume << ” cubic feet.\n”;
cheers(cube(2));

system("PAUSE");
return 0;

}

void cheers(int n)
{
using namespace std;
for (int i = 0; i < n; i++)
cout << “Cheers! “;
cout << endl;
}

double cube(double x)
{
return x * x * x;
}

1.为什么需要函数原型?
原型描述了函数到编译器的接口,也就是说,它将函数返回值的类型(如果有的话)以及参数的类型和数量告诉编译器。例如上述例子中的函数调用:
double volume = cube(side);
首先,原型告诉编译器,cube()有一个double参数。如果程序没有提供这样的参数,原型将让编译器能够捕获这种错误。其次,cube()函数完成计算后,将把返回值放置在指定的位置——可能是CPU寄存器,也可能是内存中。然后调用函数(这里为main())将从这个位置取得返回值。由于原型指出了cube()的类型为double,因此编译器知道应检索多少个字节以及如何解释它们。如果没有这些信息,编译器将只能进行猜测,而编译器是不会这样做的。
2.原型的功能
(1)编译器正确处理函数返回值;
(2)编译器检查使用的参数数目是否正确;
(3)编译器检查使用的参数类型是否正确。如果不正确,则转换为正确的类型(如果可能的话)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值