提高性能的 C++ 内联方法

标签 c++ performance inline

很久以前我就被告知要通过使用关键字 inline 并将函数体写入头文件中来制作经常内联调用的短函数/方法。 这是为了优化代码,因此实际函数调用不会产生开销。

今天看起来怎么样?现代编译器(在本例中为 Visual Studio 2010)是否会自动内联如此短的函数,还是仍然“有必要”自己这样做?

最佳答案

inline 一直是对编译器的提示,如今编译器在这方面大部分都自行做出决定(参见register).

为了内联扩展函数,编译器必须已经看到该函数的定义。对于仅在一个翻译单元中定义和使用的函数,这没有问题:在使用之前将定义放在某个地方,编译器将决定是否内联该函数。

对于在多个翻译单元中使用的函数,为了让编译器看到函数的定义,定义必须放在头文件中。当您这样做时,您需要将函数标记为 inline 以告诉编译器和链接器该函数有多个定义是可以的。 (好吧,我想你可以使函数static,但是你最终可能会因为多个拷贝而浪费空间)

关于提高性能的 C++ 内联方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12414110/

相关文章:

c++ - 解析计算器的这段代码有什么问题?

c++ - 通过引用传递指针是执行此操作的正确方法吗?

performance - 需要帮助提高 PowerShell 分隔文本解析脚本的性能

python - 如何使用内联 if 语句打印?

html - 阻止 <a> 内联 <li> 行为

html - <address> 元素 inside <p> 丢失显示 : inline property

c++ - 如何在 C++ 中递归地填充矩阵?

c++ - C++ 中的文件处理.. 它是如何工作的?

android - AndEngine游戏优化

jquery - Mouseleave 在 mouseenter 里面还是外面?