内联vs __inline vs __inline__ vs __forceinline?

Xav*_* Ho 67 c++ inline keyword

这四个内联(关键)单词之间有什么区别?

inline,__inline,__inline__,__forceinline.

ken*_*ytm 83

inline是C++和C99中关键字.

__inline是C中内联函数的特定于供应商的关键字(例如MSVC),因为C89没有它.

__inline__类似于__inline但是来自另一组编译器.

__forceinline是另一个特定于供应商(主要是MSVC)的关键字,它将使用更多的力来内联函数而不是__inline提示(例如,内联即使它导致更糟糕的代码).

__attribute__((always_inline))在海湾合作委员会和铿锵声中也有.

  • __forceinline是一个比内联更强有力的提示,但仍然只是一个提示(http://msdn.microsoft.com/en-us/library/z8y1yy88%28VS.80%29.aspx). (11认同)

CB *_*ley 20

__inline,__inline__并且__forceinline都是特定于实现的.由于双下划线,它们都是为实现保留的标识符,因此不应与应用程序中使用的标识符冲突.

inline 是唯一的C++关键字.


Hol*_*mar 8

对于Visual Studio编译器,它意味着:

  • 内联 - 建议编译器内联代码

  • __forceinline - 覆盖内置编译器优化并生成内联代码

有关更多详细信息,请参阅:http://msdn.microsoft.com/en-us/library/z8y1yy88%28VS.71%29.aspx