代码之家  ›  专栏  ›  技术社区  ›  Xavier Ho

内联vs内联vs内联vs内联vs强制内联?

  •  62
  • Xavier Ho  · 技术社区  · 14 年前

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

    inline , __inline , __inline__ , __forceinline .

    3 回复  |  直到 6 年前
        1
  •  80
  •   KennyTM    6 年前

    inline 这个 关键字,在C++和C99中。

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

    __inline__ 类似于 _内联 但是来自另一组编译器。

    __forceinline 是另一个特定于供应商(主要是msvc)的关键字,它将比 _内联 提示(例如,内联,即使它会导致更糟糕的代码)。

    还有 __attribute__((always_inline)) 在海合会和克朗。

        2
  •  20
  •   CB Bailey    14 年前

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

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

        3
  •  8
  •   codencandy    14 年前

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

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

    • _力行 -重写内置编译器优化并生成内联代码

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