1. 程式人生 > >(一)C++行內函數

(一)C++行內函數

行內函數:編譯器將函式程式碼替換函式呼叫,省去函式呼叫帶來的時間和空間開銷,增加程式碼段記憶體開銷。

適用於:函式呼叫的時間代價高於函式執行所需的時間代價,且函式被頻繁呼叫,程式碼簡短。

定義與宣告:

1> 函式宣告前加關鍵字 inline,一般省略原型宣告

2> 函式定義前加關鍵字 inline

注意:行內函數不能遞迴

內聯與巨集:行內函數可以傳遞引數,巨集則是進行文字替換

例:

1> inline double square(double x) {return x*x; }

2> #define SQUARE(X)  X * X

 square(1+2) 結果與 SQUARE(1+2)是否相等?哪個結果是正確的呢?