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句)而且使用频繁的函数才定义为内联函数。
上一篇: C++ inline内联函数详解
下一篇: C++内联函数