欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++ 内联函数

程序员文章站 2024-03-23 13:33:34
...

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