gpt4 book ai didi

c++ - 现代 C++ 编译器可以内联 cpp 文件中定义的函数吗

转载 作者:IT老高 更新时间:2023-10-28 21:49:19 24 4
gpt4 key购买 nike

我知道关键字 inline 具有有用的属性,例如用于将模板特化保存在头文件中。另一方面,我经常读到 inline 作为编译器实际内联函数的提示几乎毫无用处。此外,该关键字不能在 cpp 文件中使用,因为编译器希望在调用时检查标有 inline 关键字的函数。

因此,我对现代编译器(即 gcc 4.43)的“自动”内联功能有点困惑。当我在 cpp 中定义一个函数时,如果编译器认为内联对函数有意义,或者我是否剥夺了他的一些优化能力,编译器是否可以内联它? (这对于大多数函数来说都很好,但对于经常调用的小函数来说很重要)

最佳答案

在编译单元内,编译器不会有问题的内联函数(即使它们没有被标记为内联)。跨编译单元更难,但现代编译器可以做到。

inline tag 的使用对“现代”编译器以及它是否实际上内联函数几乎没有影响(它比人类思维具有更好的启发式方法)(除非您指定标志以强制它以一种方式或另一个(这通常是一个坏主意,因为人类不擅长做出这个决定)。

关于c++ - 现代 C++ 编译器可以内联 cpp 文件中定义的函数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8450030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com