C++內聯函數

爲何要有這玩意

做用:減小函數調用的開銷函數

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() {
    };
};

何時用(知足如下至少一條):內存

  1. 函數體很短編譯器

  2. 函數被屢次調用編譯

相關文章
相關標籤/搜索