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句)而且使用频繁的函数才定义为内联函数。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章