gpt4 book ai didi

c++ - 内联函数 - 自动内联

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:20:33 26 4
gpt4 key购买 nike

当在类声明中定义一个短函数时,它会自动成为一个内联函数。

我的问题是,

  1. 自动内联的函数应该有多短?有行数限制吗?
  2. 有什么方法可以知道一个函数是自动内联的吗?

最佳答案

  1. How short the function should be for automatically in-lining ? Is there any line-limit for that?

没有硬性限制(或者更准确地说,是的,我们可以找到给定系统的上限,但您不会在任何地方找到指定的上限)。编译器试图预测在特定情况下此过程的优势可能是什么。如果编译器认为内联函数会使代码变慢或大到无法接受,它就不会内联它。如果由于语法依赖性而无法执行,例如其他代码使用函数指针进行回调,或者像在动态/静态代码库中那样从外部导出函数,它也不会这样做。还请记住,标记函数 inline 只是表达一种愿望,编译器没有义务这样做。在 C 中,任何具有内部链接的函数都可以内联,但具有外部链接的函数会受到限制。

  1. Is there any way to know that a function is automatically in-lined ?

您可以反汇编二进制文件,然后查看是否有对函数的调用或者它是否在线

Do inline functions improve performance?

Inline Functions

关于c++ - 内联函数 - 自动内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18726337/

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