C 的內聯函式

2021-05-28 10:58:06 字數 569 閱讀 7149

影響效能的乙個重要因素是內聯技巧,內聯函式也可以叫內嵌函式。
在c++中,函式呼叫需要建立棧環境,進行引數複製,保戶呼叫現場,返回時,還要進行返回值複製,恢復呼叫現場。這些工作都是與完成特定的任務操作無關的額外開銷。

程式效率由於該項工作而受到影響,所以,流行的cpu都已經將函式呼叫的額外開銷硬體化了,以此來減少額外開銷。

而內聯函式可以使小函式結構化和可讀性,又能使效率提高。

1、對內聯函式的宣告必須在呼叫之前,因為內聯函式的呼叫的**在程式執行時是直接巢狀在呼叫執行處的,它不影響鏈結,只是在編譯其間確實**。因為在編譯時,在呼叫之前看到內聯宣告就十分必要。

如:bool isnumber(char); 此處沒有inline,不是內聯函式,即使在下面定義時使用了inline,編譯器還是當成普通函式來呼叫

inline bool isnumber(char a )

inline int calc2(int a ,int b )

int main()}}

cout<<"not use inline:"<<(clock()-t)/clk_tck<<"秒"<

c 的內聯函式

1 什麼是內聯函式?2 為什麼要引入內聯函式?3 為什麼inline能取代巨集?4 內聯函式和巨集的區別?5 什麼時候用內聯函式?6 如何使用內聯函式?7 內聯函式的優缺點?8 如何禁止函式進行內聯?9 注意事項 1 什麼是內聯函式?內聯函式是指那些定義在類體內的成員函式,即該函式的函式體放在類體內...

c 的內聯函式

一 內聯函式的利弊 利 1 不需要蒙受函式呼叫所帶來的額外開銷。2 編譯器最優化機制通常被設計用來濃縮那些 不含函式呼叫 的 當inline某個函式時,編譯器就可以對它執行語境相關最優化。弊 1 inline函式的整體觀念是,將 對函式的每一次呼叫 都以函式本體替換之,這樣會增加目標碼大小。2 in...

C 的內聯函式

內聯函式是一種特殊的函式,具有函式的普通特徵 引數檢查,返回型別等 要使用內聯函式,必須採取以下措施之一 1 在函式宣告前加上關鍵字 inline 2 在函式定義前加上關鍵字inline 內聯函式的限制 不能對函式進行取址操作 內聯函式不能遞迴 內聯函式和普通函式的區別 1 內聯函式和常規函式的區別...