天天看點

inline函數_c++内聯函數inline

inline

概念

c++

中,函數調用是會産生額外的時間開銷的,如果函數本身代碼很短,執行很快,并且該函數被反複調用。相比之下調用函數所産生的開銷就會很大,甚至超過執行代碼所産生的開銷。

為了減少函數調用的開銷,

c++

引入了

内聯函數

的機制。編譯器在處理内聯函數的調用語句時,直接将整個内聯函數代碼插入到調用語句處,進而減少函數調用産生的開銷。

inline

定義

inline

關鍵字的使用比較簡單,隻需要在函數的定義頭部加上

inline

關鍵字即可,如下所示:

inline 傳回值類型 函數名(參數){
    函數體
}
           

内聯函數的具體使用如下代碼所示:

#include<iostream>
using namespace std;
//傳回兩數中的最大值
inline int max(int a, int b) {
    return a > b ? a : b;
}

int main() {
    int a = max(2, 3);
    return 0;
}
           

如上代碼所示,定義一個内聯函數

max

,該函數傳回兩個數中的最大值,隻需要在函數定義時加入

inline

關鍵字即可,在對

max

函數進行調用時,編譯器直接将

max

的函數代碼嵌入到調用的地方,以此來節省函數調用産生的額外開銷。

inline

函數注意事項

通過上面的例子,我們了解了

inline

關鍵字的基本使用方法,内聯函數雖然節省了函數調用産生的開銷,但并不是所有的地方都能使用内聯函數定義。

當函數代碼過長時,使用内聯函數會使得程式變得臃腫。此時就不應該使用内聯函數。

另外,當函數中包含循環控制語句時,也不應該使用内聯函數。

繼續閱讀