码迷,mamicode.com
首页 > 编程语言 > 详细

C++内联函数总结

时间:2015-08-26 22:38:02      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:c++   inline   

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();        //不一定内联,通过函数指针调用

                     

版权声明:本文为博主原创文章,未经博主允许不得转载。

C++内联函数总结

标签:c++   inline   

原文地址:http://blog.csdn.net/u013507368/article/details/48009375

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!