做用:減小函數調用的開銷函數
bool isBig(int a,int b) { return a > b; } // isBig函數會無數次的被調用,調用的過程,耗時耗內存 void main() { int a = 1; int b = 2; while(true) { if (isBig()) { // ... } } } --- 假如isBig函數是內聯函數,那麼編譯器會編譯成這樣 --- void main() { int a = 1; int b = 2; while(true) { if (a > b) { // 把isBig的函數體,直接拿過來,上面的問題就不存在了 // ... } } }
定義code
// 1.內聯函數 inline bool isBig(int a,int b) { return a > b; } // 2.內聯成員函數 class B{ // func1和func2都是內聯成員函數 // 1. 用inline關鍵字明確指定爲內聯成員函數 inline void func1(); // 2. 在類中,定義並實現的函數,自動定義爲內聯成員函數 void func2() { }; };
何時用(知足如下至少一條):內存
函數體很短編譯器
函數被屢次調用編譯