inline是C++關鍵字。
具體內容如下:
在函數聲明或定義中,函數返回類型前加上關鍵字inline,即可以把函數指定為內聯函數。這樣可以解決壹些頻繁調用的函數大量消耗棧空間(棧內存)的問題。
關鍵字inline必須與函數定義放在壹起才能使函數成為內聯函數,僅僅將inline放在函數聲明前面不起任何作用。inline是壹種“用於實現”的關鍵字,而不是壹種“用於聲明”的關鍵字。
inline定義格式
壹、inline關鍵字用來定義壹個類的內聯函數,引入它的主要原因是用它替代C中表達式形式的宏定義。
表達式形式的宏定義如:
#define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))
取代這種形式的原因如下:
1.C中使用define這種形式宏定義的原因是因為C語言是壹個效率很高的語言,這種宏定義在形式及使用上像壹個函數,但它使用預處理器實現,沒有了參數壓棧,代碼生成等壹系列的操作。因此,效率很高,這是它在C中被使用的壹個主要原因。
2.這種宏定義在形式上類似於壹個函數,但在使用它時,僅僅只是做預處理器符號表中的簡單替換,因此它不能進行參數有效性的檢測,也就不能享受C++編譯器嚴格類型檢查的好處,另外它的返回值也不能被強制轉換為可轉換的合適的類型。
這樣,它的使用就存在著壹系列的隱患和局限性。
3.在C++中引入了類及類的訪問控制,這樣,如果壹個操作或者說壹個表達式涉及到類的保護成員或私有成員,妳就不可能使用這種宏定義來實現(因為無法將this指針放在合適的位置)。
4.inline推出的目的,也正是為了取代這種表達式形式的宏定義,它消除了宏定義的缺點,同時又很好地繼承了宏定義的優點。