學習筆記(一):inline內聯函數

    學習筆記(一):inline內聯函數


C++中關鍵字

   inline取代了C語言中表達形式的宏定義。如:#define MYFUNC(value1,value2)((value1-value2)/(value1+value2));


表達形式的宏:

         1.表達形式的宏定義效率很高,使用預處理實現,沒有參數壓棧、代碼生成等一系列操作;

         2.在使用時,預處理僅僅是做了簡單替換,參數類型沒有檢測;

         3.無法使用類保護成員;

         4.返回值無法做類型轉換。

inline關鍵字:

         1.使用inline後,增加了編譯器的參數類型檢測,像普通函數一樣嚴格;

         2.內聯函數的返回值使用方式同普通函數;

         3.內聯函數作爲類的成員函數,正常使用類的成員;

    總之,內聯函數繼承了宏定義表達式的優點,取消了宏定義表達式的缺點。

使用方式:

    內聯函數適用於簡單的表達式,任何使用的地方都會簡單的展開。如果函數過大,會造成代碼膨脹反而帶來壞處,一般用於類的存取函數

    inline關鍵字只是給編譯器一個建議。如果上百行的代碼,編譯器會自動轉換成普通函數去處理。如果在類內定義int GetID(){return m_nID};

這樣簡短的函數,編譯器也會自動按inline函數處理。





一直以來只在CSDN上搜索問題,看看諮詢,深深被各種大神折服。

    書山有路勤爲徑,學海無涯苦作舟。

         ----特開此博客記錄學習道路上的點點滴滴,如有錯誤還請各位大神多多指教。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章