C++ 內聯函數

C++ 內聯函數

  • 功能:

    • 犧牲必定的內存空間使得相應函數調用變成相應函數代碼替換以達到節約時間的目的
  • 使用方法:

    • 在函數聲明前加上關鍵字 inline
    • 在函數定義前加上關鍵字 inline
    • 一般作法:省略原型,將整個定義放在本應提供原型的地方
      inline funcType funcName(...) {...}
      

        

  • 使用環境:

    • 執行函數代碼的時間相對處理函數調用機制的時間不長
    • 函數常常被調用
  • 注意事項:

    • inline 是 C++ 新增的特性。c++

    • 內聯函數不能遞歸
    • 分清 C++ 內聯函數和 C 宏替換的功能差別:
      • 若是 C 語言的宏執行了相似函數的功能,應考慮將他們轉換爲 C++ 內聯函數
        #define SQUARE(X) X*X
        b=SQUARE(4.5+7.5); //is replaced by b=4.5+7.5*4.5+7.5;
        c=SQUARE(c++); //is replaced by c=c++*c++
        
        inline  int SQUARE(int a, int b) { return a*b; }
        b=SQUARE(4.5+7.5); //is equal to b=(4.5+7.5)*(4.5+7.5)
        d=SQUARE(c++); //is equal to d=c*c; c=c+1
相關文章
相關標籤/搜索