為了減少函式呼叫,控制轉移的開銷,出現了內聯函式。
針對於那些功能簡單,規模較小又使用頻繁的函式,可設計為內聯函式。
關鍵字inline。
內聯函式不是在呼叫時發生控制轉移,而是將函式嵌入沒乙個呼叫處。
內聯函式的定義和普通函式基本沒有區別,只是需要使用關鍵字inline。
inline 型別說明符 函式名(含型別說明的形參表)
但是需要注意的時inline關鍵字只是表示乙個要求,編譯器可以使用,但也可以不使用。
沒有定義為內聯函式的函式可以被編譯器自動編譯為內聯函式。
若乙個過於複雜的函式被定義為內聯函式,編譯器會自動將其視為普通函式。
內聯函式會在它呼叫的地方展開,可以消除函式呼叫和返回(暫存器的儲存和恢復)
執行速度快,執行效率高。
在c++中,內聯函式取代了巨集。
inline只能放在函式的定義之前,放在函式的宣告前,雖然沒有語法錯誤,但不會將其定義為內聯函式。
類宣告中的成員函式自動被定義為內聯函式。
C 內聯函式
1 什麼是內聯函式?內聯函式就是小型函式,犧牲空間來節省函式呼叫的開銷,一般用作比較小的函式,即函式內部沒有迴圈 開關語句等。內聯函式被發明出來就是為了取代c中的巨集,因為巨集是單純的替換而沒有型別檢查所以經常出毛病,2 為什麼要引入內聯函式?當然,引入內聯函式的主要目的是 解決程式中函式呼叫的效率...
C 內聯函式
1 什麼是內聯函式?2 為什麼要引入內聯函式?3 為什麼inline能取代巨集?4 內聯函式和巨集的區別?5 什麼時候用內聯函式?6 如何使用內聯函式?7 內聯函式的優缺點?8 如何禁止函式進行內聯?9 注意事項 1 什麼是內聯函式?內聯函式是指那些定義在類體內的成員函式,即該函式的函式體放在類體內...
c 內聯函式
1 什麼是內聯函式?內聯函式是指那些定義在類體內的成員函式,即該函式的函式體放在類體內。2 為什麼要引入內聯函式?當然,引入內聯函式的主要目的是 解決程式中函式呼叫的效率問題。另外,前面我們講到了巨集,裡面有這麼乙個例子 define abs x x 0?x x 當 i出現時,巨集就會歪曲我們的意思...