我想知道链接器级别或编译器级别的内联函数在执行速度方面是否有任何区别?
例如如果我在 .cpp 文件中拥有所有函数并依赖链接器进行内联,那么这种内联是否会比在头文件中定义一些函数以在编译器级别选择内联或没有任何链接和所有内联的统一构建效率低由编译器完成?
如果链接器同样高效,为什么还要在编译器级别显式地内联函数呢?这只是为了方便,说只有一行构造函数,因此不能被 .cpp 文件打扰?
我想这可能取决于编译器,在这种情况下,我最感兴趣的是 Visual C++ (Windows) 和 gcc (Linux)。
谢谢
最佳答案
一般规则是所有其他条件都相同,越接近执行(编译->链接->(可能是 JIT)->执行),优化完成的数据越多,优化器可以执行的优化就越好。因此,除非优化器是愚蠢的,否则当链接器完成内联时,您应该期望得到更好的结果 - 链接器将 know more about the invokation context并进行更好的优化。
关于c++ - 编译器或链接器内联函数的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5948703/