inline函數和壹般的函數的區別:
1、定義次數
inline函數是允許在多個cpp中多次定義的,而壹個可執行文件的cpp文件中壹個函數只能被定義壹次。如果妳把函數定義在壹個.h文件中並讓兩個cpp包含就會造成這個函數分別在兩個cpp中被定義產生錯誤。
2、執行代碼
內聯inline類似於宏,使用inline時,代碼在執行前,編譯器先將調用的inline函數替換城那個函數的執行代碼。
3、函數類型
inline函數用於定義函數。在形式上類似於壹個函數,但在使用它時,僅僅只是做預處理器符號表中的簡單替換,因此它不能進行參數有效性的檢測,也就不能享受C++編譯器嚴格類型檢查的好處。
擴展資料:
內聯函數的內涵:
比如?
int g(int x)?
{?
return x + x;?
}?
int f()?
{?
return g();?
}?
這樣f會調用g,然後g返回x + x給f,然後f繼續把那個值返回給調用者。?
如果g是inline的話。f會被直接編譯成。?
int f()?
{?
return x + x;?
}?
相當於把g執行的操作直接融合到f裏。這樣減少了調用g消耗的時間,但同時也增大了f的尺寸。?
這就是inline函數,也就是所謂的內聯函數。?
百度百科-inline