C++内联函数
Inline函数,看起来像函数,动作像函数,没有宏的副作用,可以调用它们又没有函数调用的额外开销。多好的内联函数
实际上,获得的比想象的还要多,避免函数调用的额外开销只是它好处的一部分而已。编译器还可以通过最优化机制(被设计用来浓缩那些‘不含函数调用的代码‘的代码),所以当inline某个函数,编译器可能就有能力对它执行语境相关最优化。
但是函数调用会增加目标代码的大小,然而,如果inline函数的本体很小,编译器针对‘函数本体‘产出的代码可能比‘函数调用’产生的目标代码更小。
总结:
内联函数优点:
1 没有宏的副作用
2 没有函数调用的额外开销
3 编译器可通过最优化机制优化代码
缺点:
可能是目标代码增大,所以,使用时,函数本体一定要足够小
使用注意:
1 inline声明函数为内联函数只是对编译器的一个申请,不是强制的
2 将函数定义在class定义式内默认是内联的
3 析构函数和构造函数往往是inline糟糕的候选人(想想析构构造都做了什么)
4 inline函数是否内联还取决于它的调用方式
如: inline void fuc(){}
typedef void (*PF)();
PF pf = fuc;
fuc(); //内联的,正常调用
pf(); //不一定内联,通过函数指针调用
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u013507368/article/details/48009375