"inline"功能的实用性

10 浏览
0 Comments

"inline"功能的实用性

关于内联有两点需要注意的事项:

  • 如果编译器确定函数无法内联,inline关键字将被忽略。
  • 在编译器优化中(在Visual Studio中,我不了解GCC),有一个选项可以告诉编译器尽可能内联所有函数。

基于这些信息,我得出结论:我从不需要担心内联。我只需要在发布版本中开启编译器优化即可。

或者,在哪些情况下手动内联更好呢?

0
0 Comments

“inline”功能的有用性

在旧版本的编译器或较不复杂的编译器(如用于嵌入式开发的编译器)中,手动使用inline可能会很有用。如果你使用的是Visual Studio,我认为通常情况下你根本不需要使用inline关键字。

0
0 Comments

在现代编译器中,inline关键字有两个作用:

  • 它作为一个提示,告诉编译器执行内联优化(这在现代编译器中基本上没有用,因为无论有没有该关键字,编译器都会进行积极的内联)
  • 它告诉编译器/链接器忽略一次定义规则:即inline符号可以在多个翻译单元中定义(通常是因为它在头文件中定义,而该头文件被多个文件包含)。通常情况下,这会导致链接器错误,但使用inline关键字时允许这种情况发生。

第一点直接回答了我的问题。谢谢。

但并不是所有情况都是如此。在共享库的情况下,inline关键字是至关重要的。

0
0 Comments

"inline"特性的有用性

在C++中,“inline”特性的主要目的是将函数放在头文件中,并在多个翻译单元中包含该文件。

如果想要将函数放在头文件中,并在多个翻译单元中包含该文件,那么使用“inline”特性是很有用的。

感谢,我不知道“inline”也可以用于避免多次定义的目的。然而,是否还有其他原因使人们可能更喜欢手动内联以进行优化?

你不能“偏好”其中之一。无论是否将函数标记为“inline”,编译器都会根据自己的喜好进行内联。

0