首頁  >  問答  >  主體

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

void x(){
    thisIsALongFunction();
}

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

高洛峰高洛峰2764 天前572

全部回覆(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
  • 取消回覆