搜索

首页  >  问答  >  正文

C++函数很短, 但是函数内调用一个很长的函数, 该用inline吗?

void x(){
    thisIsALongFunction();
}

如上图所示的代码, x()中只有一句话, 但是它所调用的函数很长, 这种情况下需要inline吗?

高洛峰高洛峰2813 天前603

全部回复(5)我来回复

  • 巴扎黑

    巴扎黑2017-04-17 14:29:40

    向你这种情况编译器会直接inline掉外层的函数。

    回复
    0
  • 高洛峰

    高洛峰2017-04-17 14:29:40

    inline只是向编译器提建议,并非强制。

    然而主流编译器的实现上,会无视你的建议。如果你开了O2,会自动内联短的函数,一定不会内联长的函数。所以忽略它吧。

    回复
    0
  • 阿神

    阿神2017-04-17 14:29:40

    加吧,内联过去就是把你那层额外的封装给解了,里面那个封装应该还在

    回复
    0
  • 黄舟

    黄舟2017-04-17 14:29:40

    不要关心这些问题,最终编译器优化的代码有没有inline都无所谓。

    回复
    0
  • PHPz

    PHPz2017-04-17 14:29:40

    先搞清楚inline是干嘛的,,

    回复
    0
  • 取消回复