在主調函式呼叫函式時,先將現場壓入棧以儲存現場-轉去執行被掉函式-返回主調函式、現場出棧以恢復現場-繼續往下執行。
為了減少函式呼叫的成本,特別是對於小型函式,c++提供了內斂函式(inline)。c++規定:若要在程式中應用內斂函式,需要
在首次出現函式名稱時,在相應的函式定義或函式宣告中的函式型別前面加上限定符inline
好處:在編譯時,將在所有呼叫內斂函式的語句處插入函式體**,從而節約了函式呼叫的系統開銷,提高了程式的執行效率。由於內斂函式的**會在任何呼叫它的地方展開,所以對內斂函式的呼叫會增加程式的長度。如果函式太複雜,**膨脹帶來的壞處會大於
效率的提高帶來的好處。因此inline往往與頻繁使用的小函式一起使用。
tips:遞迴函式不能定義為內斂函式。另外,內斂函式的函式體內也不允許出現迴圈語句(for,while,do-while)和開關語句(switch)。遇到這種情況,即使加上inline,也只能按照非內斂函式使用。
c 中內斂函式 C 內聯函式
內聯函式是指用inline關鍵字修飾的函式。在類內定義的函式被預設成內聯函式。實質就是當需要呼叫乙個內聯函式時,不是去呼叫而是將該函式 整段插入到需要使用該內聯函式的地方,從而省去呼叫過程,提高了執行速度。缺點由於每當 呼叫到內聯函式,就需要在呼叫處直接插入一段該函式的 所以程式的體積將會增大,消耗...
c 中內斂函式 C 中內聯函式
目錄 什麼是內聯函式 如何使函式內聯 為什麼要使用內聯函式 inline函式的優缺點分析 什麼時候該使用內聯函式 正文在c語言中,我們使用巨集定義函式這種借助編譯器的優化技術來減少程式的執行時間,那麼在c 中有沒有相同的技術或者更好的實現方法呢?答案是有的,那就是內聯函式。內聯函式作為編譯器優化手段...
c 中內斂函式 C 內聯函式 菜鳥教程
內聯函式 tip 只有當函式只有 10 行甚至更少時才將其定義為內聯函式.定義 當函式被宣告為內聯函式之後,編譯器會將其內聯展開,而不是按通常的函式呼叫機制進行呼叫.優點 當函式體比較小的時候,內聯該函式可以令目標 更加高效.對於訪問函式以及其它函式體比較短,效能關鍵的函式,鼓勵使用內聯.缺點 濫用...