透彻了解inline的里里外外——effective c++学习笔记

inline背后的整体观念:将“对此函数的每一次调用”都以函数本体替换之。

inline在大多数c++程序中是编译器行为。

inline是个申请,编译器可以忽略。

inlinevirtual函数的申请一般都会失败。

一个表面看似inline的函数是否真实inline,取决于你的建置环境,主要取决于编译器。

编译器通常不对“通过函数指针而进行的调用”实施inline

inline函数调用有可能被inline,也可能不被inlined,取决于实施的方式。

不要将Derived(子类)构造函数和析构函数定义为inlined

程序库的设计者必须评估“将函数声明为inlined”。更改inlined函数需要主程序进行重新编译。

一开始先不要将任何函数声明为inlined

至于inline可以提高效率,可以遵循80-20原则:80%的时间花费在20%的代码上。然后对这20%的函数进行优化,包括inlined

请记住:

1、  将大多数inlining函数限制在小型,被频繁调用的函数身上。这可使日后的调试过程和二进制升级更加容易,也可以使潜在的代码膨胀问题最小化。

2、  不要因为function template出现在头文件,就将他们声明为inline

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值