如何在C++中内联函数



要使函数内联,我应该在函数原型或函数定义中添加关键字inline,还是应该在函数声明和函数定义中添加inline关键字。

如果已有声明和定义,则无需在任何地方添加inline。内联关键字不是一个神奇的优化咒语,而更像是一个链接说明符。

内联函数必须在使用它的每个翻译单元中定义。如何在那里定义它?很简单,它放在标题中:

// foo.h
inline void foo() {}

但是等等,我听到你说,把它放在标题中不会导致多个定义错误吗?当它被内联标记时,不是,这就是为什么我称它为链接说明符的原因。内联说明符告诉编译器它看到的所有多重定义都是相同的。因此,它实际上可以使用其中任何一个。或者,它可能会检查函数体并选择执行代码内联,但并非必须这样做。

关键字的主要目的是允许这些多个定义以内联方式显示,而不是导致函数的代码内联。同样,如果您在 cpp 文件中有一个定义,在标头中有一个声明,则无需执行任何操作。如果你有一个想要出现在标题中的实用程序,把它放在那里 - 定义和全部 - 并添加内联关键字。

如何使函数内联:

要使任何函数成为内联函数,请使用关键字"inline"开始其定义。

从文章中。

相关内容

  • 没有找到相关文章

最新更新