內聯函式的問題

2021-10-02 14:42:14 字數 684 閱讀 2983

內聯函式

#include

using namespace std;

//內聯函式概念:inline函式是一種特殊的函式,具備普通函式的特徵(引數檢查,返回型別等)

//內聯函式沒有普通函式的額外開銷(壓棧,跳轉,返回)

//內聯函式由編譯器處理,直接將編譯後的函式體插入呼叫的地方,類似於展開執行

//內聯函式的限制:不存在任何形式的迴圈語句,不存在過多的條件判斷語句,函式體不能過於龐大,不能對函式進行取址操作 內聯函式必須宣告在呼叫語句之前

//****內聯函式只是省去了普通函式的壓棧等開銷,當函式體的執行開銷遠大於壓棧等所用的開銷時,內斂將無意義!

//優點:節省開銷 缺點:內聯函式的函式體在**段中會出現多個「副本」,會增加**段的空間

//本質:以犧牲**段空間為代價,提供程式的執行時間和效率

//適用範圍:函式體很小,且被頻繁使用

inline

intmax

(int a,

int b)

#define max(a,b) (a)>(b)?(a):(b) 

//由預處理器處理,進行簡單的文字替換,沒有任何編譯過程

int

main()

mysql 內聯函式 Kotlin內聯函式

內聯函式使用關鍵字內聯宣告,內聯函式的使用增強了高階函式的效能。內聯函式告訴編譯器將引數和函式複製到呼叫站點。虛函式或區域性函式不能宣告為內聯。以下是內聯函式內部不支援的一些表示式和宣告 區域性類宣告 內部巢狀類的宣告 函式表示式 宣告區域性函式 區域性可選引數的預設值 讓我們看一下內聯函式的基本示...

C 中內聯函式的效率問題

2 沒有內聯函式時 include include include using namespace std inline void print void print std cout hello world 10seconds 使用內聯函式 include include include using...

內聯函式 C語言的inline內聯函式的作用

編譯器完成的,在呼叫處將函式展開,減少了呼叫函式時 進棧和出棧 壞處是會增加 段的大小 缺點 增加了編譯後的二進位制檔案的大小 為了提高執行的速度,對於一些程式 小,執行時間短但利用次數比較多的函式我們就定義為inline,對於短小的函式,可以省去call儲存現場等操作,提高程式執行速度。原文 分類...