C C 的 inline關鍵字修飾的函式

2021-10-03 18:22:20 字數 558 閱讀 9672

inline

與巨集的區別

巨集是在與預編譯階段處理的,沒有型別和安全檢查;而inline是在編譯階段處理的,有型別和安全檢查。也可以說,inline是一種更安全的巨集。

與static修飾函式的區別

static修飾的函式有開棧和清棧的開銷,inline沒有。

缺陷inline修飾的函式在呼叫點直接將**展開,是以空間換時間的概念設計,這樣會使得,編譯後的檔案變得很龐大。

使用inline的注意事項

1.inline修飾的函式只在本檔案可見,因此**實現應寫在標頭檔案中;

2.inline只在release版本中生效;

3.inline函式只是給編譯器乙個建議,至於編譯器會不會使用是由編譯器決定的(若程式中含有遞迴或迴圈操作,編譯器不會處理成inline函式);

4.基於實現,不是基於宣告的。也就是說inline關鍵字不能加在函式的宣告前面,只能加到函式的定義點前。

使用inline的建議

1.函式體積較小,函式的開銷小於函式堆疊清棧的開銷,可以使用;函式體積較大,函式的開銷大於函式堆疊清棧的開銷,不建議使用inline函式。

關鍵字inline的作用

1.作為函式定義的關鍵字,說明該函式是內聯函式。內聯函式會將 塊嵌入到每個呼叫該函式的地方。內聯函式減少了函式的呼叫,使 執行的效力提高,但是會增加目標 的大小,最終會使程式的 段占有大量的記憶體。2.inline不是強制的,編譯器可以對它置之不理。例如,遞迴函式通常不會被編譯為inline函式,編...

inline關鍵字 簡述

inline關鍵字 inline 內聯 函式 將普通的函式定義為inline函式,可以避免普通函式入棧出棧的開銷,它是將函式內的 直接貼上到呼叫處。除此之外,它和普通函式無其他區別。在函式宣告或定義中函式返回型別前加上關鍵字inline,即可以把函式指定為內聯函式。內聯函式的宣告和內聯函式的函式體的...

inline 關鍵字使用

inline關鍵字是用於函式宣告或定義,可以把函式指定為內聯函式,而且關鍵字inline必須與函式定義放在一起才能使函式成為內聯,僅僅將inline放在函式宣告前是不起任何作用的。inline的作用是什麼呢?為什麼要引入inline功能呢?簡單的講 inline的作用與 巨集定義 作用相同,但是又不...