因為函式呼叫時候需要建立時間、引數傳入傳遞等操作,造成了時間和空間的額外開銷。c++追求效率所以引入了內聯的概念。
通過編譯器預處理,在呼叫內聯函式的地方將內聯函式內的語句copy到呼叫函式的地方,從而提高了效率,減少了一些不必要的開銷。
使用關鍵字:inline函式定義形式:inline [返回型別] [函式名]( 參數列 )
例子:當呼叫max
函式本身所產生的開銷可能比函式內語句執行開銷大,所以我們採用內聯函式,減少呼叫開銷。
#includeusingnamespace
std;
inline
int max(int a,int
b)int
main()
當呼叫了這個max函式時,經過編譯器預處理後真正執行的程式可能是下面這個樣子
#includeusingnamespace
std;
intmain()
使用內聯函式後雖然呼叫函式的開銷降低了,但是有利必有弊,內聯函式會導致主函式指令增多、函式體積增大等情況。
開發中要根據情況正確使用內聯函式 。
C 內聯函式的作用
include include using namespace std inline void func int main gettimeofday end t,null n time end t.tv sec start t.tv sec 1000 1000 end t.tv usec start...
C 函式原型,及內聯函式
1 一般型別 返回值 函式名 參數列 2 函式原型的參數列中可不包引數的名字,而只包含它們的型別 int add int a,int b int add add 3 函式定義由函式說明和函式體兩個部分構成1.作用 消除系統開銷,提高執行速度 2.內聯函式在第一次被呼叫之前必須進行完整的定義,否則編譯...
內聯函式的作用
內聯函式必須是和函式體宣告在一起,才有效。像這樣的申明是沒有效果的 inline tablefunction int i 編譯器只是把函式作為普通的函式宣告,我們必須定義函式體 inline tablefunction int i 這樣我們才算定義了乙個內聯函式。我們可以把它作為一般的函式一樣呼叫。...