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的作用與 巨集定義 作用相同,但是又不...