這四個內聯(關鍵)詞之間有什麼區別?inline vs __inline vs __inline__ vs __forceinline?
inline
,__inline
,,__forceinline
。
這四個內聯(關鍵)詞之間有什麼區別?inline vs __inline vs __inline__ vs __forceinline?
inline
,__inline
,,__forceinline
。
inline
是關鍵字,在C++和C99中。
__inline
是C語言中內聯函數的特定於供應商的關鍵字(例如MSVC),因爲C89沒有它。
與__inline
類似,但來自另一組編譯器。
__forceinline
是另一個供應商特定的(主要是MSVC)關鍵字,它將應用比__inline
提示更多的內聯函數(例如內聯,即使它導致更糟糕的代碼)。
GCC和clang中還有__attribute__((always_inline))
。
__inline
,和__forceinline
都是特定實現。由於雙下劃線,它們都是爲實現保留的標識符,因此不應與應用程序中使用的標識符衝突。
inline
是唯一的C++關鍵字。
對於在Visual Studio編譯它意味着:
直列 - 建議編譯器內聯代碼
__forceinline - 覆蓋內置的編譯器優化和生成內嵌代碼
For more det艾斯看到:http://msdn.microsoft.com/en-us/library/z8y1yy88%28VS.71%29.aspx
你也應該問社區什麼建議使用內聯。 – 2010-05-04 14:10:45