c++ - 如果编译器内联通过函数指针调用的函数会发生什么

标签 c++ c compiler-construction

假设我的程序和代码中的某个地方有一个函数,该函数是通过函数指针调用的。如果编译器碰巧内联了该函数会发生什么,或者编译器会意识到有一个函数指针分配给该函数并因此避免内联它。

最佳答案

当使用指向函数的指针时,编译器会为函数生成一个外联体。仍然可以在其他调用站点内联该函数。

请注意,标记为 inline 的函数必须在所有引用它的 TU 中都有可用的定义,并且这些定义必须相同。这意味着在某些调用站点内联该函数并在其他站点保持外联是非常安全的。

关于c++ - 如果编译器内联通过函数指针调用的函数会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14749230/

相关文章:

c++ - 在我的代码中添加了一个for循环,它似乎运行得更快,这怎么可能?

c - BST 实现函数中的段错误

.c 代码的 java 包装器

c++ - 查找表是哈希表的一种形式吗?

java - 编译器生成的相对地址以及它们如何在(最好是 java)字节码中表示?

C/C++ : Proper places to use extern for my library?

java - BufferedImage 缓冲区大小错误

c++ - 获取windows桌面路径

c++ - 您能否(并且应该)消除使用 T 和 const 引用 T 的函数调用的歧义?

c++ - 处理大量的 Boost 头文件