函數被呼叫時
程式的主控權交給了被呼叫的函數
等函數執行完後
再回到原程式繼續執行
程式這樣跳來跳去
會花費不少時間
C++提供一個解決方法
在一般函數定義前加上inline關鍵字
與一般函數不同的是
inline函數必須在函數被呼叫前定義
Ex:
[code language=”cpp”]
#include <iostream>
using namespace std;
inline int fun(void){
cout << "Hello World!";
}
int main(){
fun();
}
[/code]
使用inline函數時
會將函數的程式碼複製一次
直接替代函數敘述
就像把程式碼嵌入原始程式一樣
大大減少程式流程主控權不斷轉換的次數
但是
inline函數也會使用較多記憶體
來記錄這些被嵌入的程式碼
以下狀況不適合改成inline函數
-
- inline函數內容過大
-
- inline使用遞迴函數呼叫方式,呼叫自己本身
-
- 編譯器不支援inline函數使用