C 內聯函式作用及弊端

2022-02-22 11:34:02 字數 609 閱讀 7957

因為函式呼叫時候需要建立時間、引數傳入傳遞等操作,造成了時間和空間的額外開銷。c++追求效率所以引入了內聯的概念。

通過編譯器預處理,在呼叫內聯函式的地方將內聯函式內的語句copy到呼叫函式的地方,從而提高了效率,減少了一些不必要的開銷。

使用關鍵字:inline函式定義形式:inline [返回型別] [函式名]( 參數列 )

例子:當呼叫max

函式本身所產生的開銷可能比函式內語句執行開銷大,所以我們採用內聯函式,減少呼叫開銷。

#includeusing

namespace

std;

inline

int max(int a,int

b)int

main()

當呼叫了這個max函式時,經過編譯器預處理後真正執行的程式可能是下面這個樣子

#includeusing

namespace

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 這樣我們才算定義了乙個內聯函式。我們可以把它作為一般的函式一樣呼叫。...