一般在呼叫函式時會產生該函式的棧幀結構,在棧幀結構中儲存關於該函式的引數、變數等臨時資料;另外還要儲存現場,函式返回後還要恢復現場。這些都要花費一些時間。
如果有的函式需要頻繁使用,則在反覆呼叫的過程中會有很大的時間開銷,降低程式執行效率。
c++提供了一種提高效率的方法,即在編譯時將所呼叫的函式的**直接嵌入到主調函式中,而不是將流程傳出去。這樣做的特點是用增加**長度的方法來節省執行時間。
只需在函式首行的左端加乙個關鍵字inline即可。
只有那些規模較小而又被頻繁使用的函式,才適合於宣告為inline函式
如果**很長或者有迴圈/遞迴的函式不適合使用內聯。
內聯函式只是建議編譯器將該函式嵌入到主調函式中。至於編譯器會不會真正地這樣做,取決於編譯器自己。如果c++類中的成員函式不包括迴圈等控制結構,則c++系統會自動地將它作為內聯函式來處理。
inline關鍵字 簡述
inline關鍵字 inline 內聯 函式 將普通的函式定義為inline函式,可以避免普通函式入棧出棧的開銷,它是將函式內的 直接貼上到呼叫處。除此之外,它和普通函式無其他區別。在函式宣告或定義中函式返回型別前加上關鍵字inline,即可以把函式指定為內聯函式。內聯函式的宣告和內聯函式的函式體的...
inline 關鍵字使用
inline關鍵字是用於函式宣告或定義,可以把函式指定為內聯函式,而且關鍵字inline必須與函式定義放在一起才能使函式成為內聯,僅僅將inline放在函式宣告前是不起任何作用的。inline的作用是什麼呢?為什麼要引入inline功能呢?簡單的講 inline的作用與 巨集定義 作用相同,但是又不...
C中關鍵字inline用法
一 什麼是內聯函式 在c語言中,如果一些函式被頻繁的呼叫,不斷地用函式入棧,即函式棧,則會造成棧空間或者棧記憶體的大量消耗,為了解決這個問題,特別的引入了inline關鍵字,表示為內聯函式。棧空間指的是函式內資料的記憶體空間,在乙個系統下,棧空間的資源是有限的,假如頻繁大量的使用就會因棧空間的不足而...