c++之inline總結

1. 如何定義:

  • 用於實現的關鍵字:
    在函數定義時省略,在函數實現時用inline修飾。

2. 編譯器如何實現:

  • 把函數體複製到inline函數被調用處。
  • 爲其分配內存空間保存局部變量。
  • 把linline函數的輸入參數和返回值映射到調用它的函數中。
  • 設置inline函數的返回點。

3. 分析:

  • 動機:
    函數調用會產生開銷,因此當所調用函數比較短小時,不如直接運行函數中的代碼,而不分配新的棧幀。

  • 優劣:

    • 優: 節省函數調用的開銷。
    • 劣:inline函數出現的每個地方都要複製函數體,使代碼變長,可能造成內存空間喫緊。
  • 適用場景:

    • 代碼短小(緩解代碼膨脹問題),執行時間比函數調用開銷小(收益大)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章