C++ 内联函数

1、内联函数的概念

在函数说明前冠以关键字inline的函数。列如:

inline int func(int x,int y);
2、编译器是如何对待内联函数的?

每当程序中出现对该函数的调用时,编译器编译时,就会将该函数的函数体全部插入到调用该函数的语句处,同时实参取代形参,于是程序运行时就不在进行函数调用。

实列说明:

#include<iostream>
using namespace std;

inline int box(int x, int y)
{
	return x*y;
}

int main()
{
	int a;
	a=box(4, 5);
	cout << a << endl;
}

解析:
由于定义函数时,将box函数定义为内联函数,所以编译时在遇到调用函数box(4,5)时,就用box函数体来代替box(4,5),同时实参取代形参。这样就变成了

int main()
{
	int a;
	a=4*5;
	cout << a << endl;
}
3、作用

内联函数是一种空间换时间的做法,能够提高程序运行的效率。

4、注意事项

1、内联函数不建议声明和定义分离,分离会导致链接错误。因为inline被展开,就没有函数地址了,链接就会找 不到。
2、内联函数在第一次被调用之前必须进行完整的定义。
3、一般不包含复杂的语句。如循环语句、递归语句。
4、通常只有规模很小(1~5句)而且使用频繁的函数才定义为内联函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值