前言:
c 語言中有巨集函式的概念。巨集函式的特點是內嵌到呼叫**中去,避免了函式呼叫 的開銷。但是由於巨集函式的處理發生在預處理階段,缺失了語法檢測和有可能帶來的語意差錯
1、基本概念
(inline關鍵字實現了真正的內嵌)
inline void func(int a)
int main()
return 0;
}
3、總結
優點:避免呼叫時的額外開銷(入棧與出棧操作)
代價:由於內聯函式的函式體在**段中會出現多個「副本」,因此會增加**段的空間。
本質:以犧牲**段空間為代價,提高程式的執行時間的效率。
適用場景:函式體很「小」,且被「頻繁」呼叫。
結論:1)內聯函式在編譯時直接將函式體插入函式呼叫的地方
2)inline只是一種請求,編譯器不一定允許這種請求
3)內聯函式省去了普通函式呼叫時壓棧,跳轉和返回的開銷
inline函式 C 內聯函式 inline
inline要起作用,必須要與函式定義放在一起,而不是函式的宣告 inline 當編譯器處理呼叫內聯函式的語句時,不會將該語句編譯成函式呼叫的指令,而是直接將整個函式體的 插人呼叫語句處,就像整個函式體在呼叫處被重寫了一遍一樣,在執行時是順序執行,而不會進行跳轉。優點 內聯函式沒有執行函式呼叫的開銷...
C 內聯函式 inline
巨集 就是使用乙個字串來代替乙個表示式 或函式呼叫 編譯之前,預處理器會使用這個巨集字串所代表的表示式 或函式呼叫 來替換所有出現的巨集字串,這樣的話,用巨集表示的函式呼叫 就不用另外開闢函式棧,不用保護和恢復函式呼叫現場,這樣就提高了 的執行效率 所以,呼叫乙個巨集比呼叫乙個函式更有效 但是呼叫巨...
c 內聯函式inline
1.inline原理 在程式編譯時,編譯器將程式中出現的內聯函式的呼叫表示式用內聯函式的函式體來進行替代。採用空間換時間的策略。是以 膨脹 複製 為代價,僅僅省去了函式呼叫的開銷,從而提高函式的執行效率。例如 如果乙個函式被指定為inline函式,則它將在程式中每個呼叫點上被展開。int i 10 ...