天天看點

内聯函數定義及實質總結

一、内聯函數的定義:

    1、内聯函數定義可在函數頭前面或者傳回值類型後面加上關鍵字inline。

        如:

               inline int max(int a, int b)

               {

                   return a >= b?a:b;

               }

               int inline max(int a, int b)

               {

                   return a >= b?a:b;

               }

    2、内聯函數的定義必須位于使用内聯函數的檔案内,不然無法達到内聯的使用效果。

    3、内聯函數不适合為複雜的函數使用,如使用了遞歸,複雜條件判斷語句等等。(代碼最好不要超過5、6行)。

二、内聯函數實質:

    1、内聯的效果和宏替換的效果類似。并且,使用内聯可以基本替代宏替換,不同的是宏替換實作是在程式預編譯的時候就進行了替換,而内聯則是在函數編譯的時候進行了代碼鑲嵌的過程。此外内聯函數是一個真正的函數,編譯器會對内聯函數進行安全檢測。

    2、内聯函數實際的效果是節省時間,消耗空間。

    3、内聯函數可以提高函數使用的效率。但對于大型項目影響不大。

    ^_^