C語言中的內聯函式(總結)

2021-06-22 13:21:23 字數 514 閱讀 7960

c語言本身不支援內聯函式,但是新的c標準c99中,支援了內聯函式。

引入內聯函式的目的是為了提高程式中函式呼叫的效率。

函式呼叫,實際上是將程式執行的順序轉移到被呼叫的函式所在的記憶體位址,將函式執行完後,再返回到原來的位址繼續往下執行,因此需要保護現場並記憶執行的位址,還要恢復現場。因此,函式呼叫需要消耗一定的時間和空間,於是影響了效率。特別是,一些函式不大,但需要頻繁地呼叫時,效率問題更需解決。引入內斂函式就是為了解決這一問題。

程式編譯時,遇到呼叫的內聯函式時,只是將函式名替換為內聯函式的函式體,這樣執行時就不需要再去呼叫函式。但是會增加目標**量,進而增加空間開銷。所以,它是犧牲空間換取時間的節省。

如何定義內聯函式呢?其實跟普通函式一樣,只是需要在函式名前加乙個關鍵字inline。如:

inline int add(int a,int b)

注:內聯函式一般只是簡單的一兩句,不能有迴圈語句和開關語句(switch case),如果過於複雜,編譯器則會按照普通函式對待,不會當做內聯函式,也不會報錯。

c語言中的的內聯 inline 函式

發表於2011 年 01 月 26 日 由 admin c c 中的inline,使用在函式宣告處,表示程式設計師請求編譯器在此函式的被呼叫處將此函式實現插入,而不是像普通函式那樣生成呼叫 申請是否有效取決於編譯器 一般地說,這樣作的優點是省掉了呼叫函式的開銷 缺點則是可能會增加代所生成目標 的尺寸...

c語言中的的內聯 inline 函式

c c 中的inline,使用在函式宣告處,表示程式設計師請求編譯器在此函式的被呼叫處將此函式實現插入,而不是像普通函式那樣生成呼叫 申請是否有效取決於編譯器 一般地說,這樣作的優點是省掉了呼叫函式的開銷 缺點則是可能會增加代所生成目標 的尺寸 二班的除外,二班情況下,inline函式甚至會返過來降...

C語言中的Inline內聯函式解析

在c語言中,為了解決一些頻繁呼叫的小函式大量消耗棧空間或是叫棧記憶體的問題,特別的引入了inline修飾符,表示為內聯函式。棧空間就是指放置程式的區域性資料也就是函式內資料的記憶體空間。那麼在系統下,棧空間是有限的,假如頻繁大量的使用就會造成因棧空間不足所造成的程式出錯的問題 比如函式的死迴圈遞迴呼...