【发布时间】:2010-07-09 12:33:43
【问题描述】:
关于内联有两点:
- 如果编译器确定函数不能被内联,
inline关键字将被忽略。 - 有一个编译器优化(在 Visual Studio 上,我不了解 GCC)告诉编译器在可能的情况下内联所有函数。
由此我得出结论,我永远不需要为内联而烦恼。我只需要为发布版本打开编译器优化。
或者有什么情况需要手动内联?
【问题讨论】:
-
在某些情况下使用
inline关键字是必要的。它只是与内联优化没有太大关系 -
我认为答案显然来自您的选择:当您想控制内联和不内联的内容时,您可能需要内联。
-
@Andrey:但大多数编译器无论如何都会很乐意内联。
-
@jalf:
there are cases where using the inline keyword is necessary。请详细说明。 -
@Prasoon:如果你想在一个头文件中定义它是必要的,这样它就可以被内联到多个编译单元中。这是它唯一真正的目的:它为函数提供内联链接,允许出现多个相同的定义。
标签: c++