天天看點

C++中inline關鍵字的作用

C++關鍵字,在函數聲明或定義中函數傳回類型前加上關鍵字inline,即可以把函數指定為内聯函數。關鍵字inline必須與函數定義放在一起才能使函數成為内聯,僅僅将inline放在函數聲明前面不起任何作用。inline是一種“用于實作的關鍵字”,而不是一種“用于聲明的關鍵字”。

inline關鍵字用來定義一個類的内聯函數,引入它的主要原因是用它替代C中表達式形式的宏定義。

優點:

1. inline 定義的類的 内聯函數,函數的代碼被放入 符号表中,在使用時直接進行替換,(像宏一樣展開),沒有了調用的開銷,效率也很高。 2. 很明顯,類的内聯函數也是一個真正的函數, 編譯器在調用一個内聯函數時,會首先檢查它的參數的類型,保證調用正确。然後進行一系列的相關檢查,就像對待任何一個真正的函數一樣。這樣就消除了它的隐患和局限性。 3. inline 可以作為某個 類的成員函數,當然就可以在其中使用所在類的保護成員及私有成員。 缺點:

1)如果函數的代碼較長,使用内聯将消耗過多記憶體

2)如果函數體内有循環,那麼執行函數代碼時間比調用開銷大。

繼續閱讀