如何检查内联函数是否已由编译器自动转换为常规函数?

Hailiang Zhang

我知道在某些情况下,编译器会通过调用堆栈将显式定义的内联函数转换为常规函数。我怎么知道是这种情况?(对于我的C ++代码)

顺便说一句,在什么情况下编译器会将内联函数转换为常规函数?

529

在可执行文件上运行nm运行otool该文件,并且如果看到该函数的名称,则说明该函数已被定义。这并不意味着它实际上根本没有内联(编译器可能内联一个函数,但也可能生成一个独立的函数体,因为例如有人为其分配了一个函数指针)。为此,您需要检查实际生成的汇编代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有办法检查编译器是否内联C ++ lambda函数?

来自分类Dev

如何使编译器比Swift常规函数更喜欢我的函数?

来自分类Dev

如果函数调用是return语句,编译器是否可以自动移动函数参数?

来自分类Dev

C ++编译器是否会自动将我的函数设置为静态函数?

来自分类Dev

如果不使用返回值,g ++编译器是否将constexpr函数视为常规函数?

来自分类Dev

无法使用Intel编译器强制内联C ++函数

来自分类Dev

建议编译器有选择地内联函数调用

来自分类Dev

编译器如何内联具有分支和多个返回语句的函数?

来自分类Dev

如何让编译器处理这个函数?

来自分类Dev

编译器是否为自动和静态对象提供不同的默认构造函数?

来自分类Dev

正确的编译器内在函数是否可以进行双重检查锁定?

来自分类Dev

编译器是否更有可能在指定了inline关键字的类声明中内联函数?

来自分类Dev

现代Java编译器/ JVM内联函数/方法是否完全从一个地方调用?

来自分类Dev

如何知道特殊成员函数的实现会自动生成编译器?

来自分类Dev

为什么编译器坚持在我的函数不是内联时是内联的?

来自分类Dev

如何获取XCode 6,LLVM编译器以检查C函数参数

来自分类Dev

如何让Kotlin编译器知道我已经在函数内部检查过null?

来自分类Dev

为什么C ++编译器是内联的综合函数(例如默认构造函数)?

来自分类Dev

为什么F#编译器不能完全内联高阶函数的函数参数?

来自分类Dev

C ++如何在调用函数时阻止编译器进行隐式转换?

来自分类Dev

没有类型转换的 Java 编译器如何在子类中调用正确的 equals() 函数?

来自分类Dev

编译器如何选择自动类型转换方法

来自分类常见问题

是否可以将before_destroy转换为内联函数?

来自分类Dev

是否可以将before_destroy转换为内联函数?

来自分类Dev

如何检查类是否是编译器生成的

来自分类Dev

编译器/解释器如何知道函数是异步的?

来自分类Dev

将函数转换为引用类型,在标准中存在漏洞还是在编译器中出现错误?

来自分类Dev

将类模板转换为 SFINAE 和构造函数委托,现在我收到编译器错误

来自分类Dev

为什么对于内联函数,编译器会尝试在每个调用点生成代码

Related 相关文章

  1. 1

    有没有办法检查编译器是否内联C ++ lambda函数?

  2. 2

    如何使编译器比Swift常规函数更喜欢我的函数?

  3. 3

    如果函数调用是return语句,编译器是否可以自动移动函数参数?

  4. 4

    C ++编译器是否会自动将我的函数设置为静态函数?

  5. 5

    如果不使用返回值,g ++编译器是否将constexpr函数视为常规函数?

  6. 6

    无法使用Intel编译器强制内联C ++函数

  7. 7

    建议编译器有选择地内联函数调用

  8. 8

    编译器如何内联具有分支和多个返回语句的函数?

  9. 9

    如何让编译器处理这个函数?

  10. 10

    编译器是否为自动和静态对象提供不同的默认构造函数?

  11. 11

    正确的编译器内在函数是否可以进行双重检查锁定?

  12. 12

    编译器是否更有可能在指定了inline关键字的类声明中内联函数?

  13. 13

    现代Java编译器/ JVM内联函数/方法是否完全从一个地方调用?

  14. 14

    如何知道特殊成员函数的实现会自动生成编译器?

  15. 15

    为什么编译器坚持在我的函数不是内联时是内联的?

  16. 16

    如何获取XCode 6,LLVM编译器以检查C函数参数

  17. 17

    如何让Kotlin编译器知道我已经在函数内部检查过null?

  18. 18

    为什么C ++编译器是内联的综合函数(例如默认构造函数)?

  19. 19

    为什么F#编译器不能完全内联高阶函数的函数参数?

  20. 20

    C ++如何在调用函数时阻止编译器进行隐式转换?

  21. 21

    没有类型转换的 Java 编译器如何在子类中调用正确的 equals() 函数?

  22. 22

    编译器如何选择自动类型转换方法

  23. 23

    是否可以将before_destroy转换为内联函数?

  24. 24

    是否可以将before_destroy转换为内联函数?

  25. 25

    如何检查类是否是编译器生成的

  26. 26

    编译器/解释器如何知道函数是异步的?

  27. 27

    将函数转换为引用类型,在标准中存在漏洞还是在编译器中出现错误?

  28. 28

    将类模板转换为 SFINAE 和构造函数委托,现在我收到编译器错误

  29. 29

    为什么对于内联函数,编译器会尝试在每个调用点生成代码

热门标签

归档