首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内联函数

内联函数
EN

Stack Overflow用户
提问于 2010-03-05 12:33:29
回答 6查看 313关注 0票数 5

我知道编译器可能会也可能不会执行函数的内联扩展,无论程序员是否请求。

我只是好奇地想知道,有什么方法可以让程序员确定编译器已经内联了一个特定的函数吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-03-05 12:36:12

除了查看生成的代码之外,没有。有些实现可能会提供这些信息,但标准并不要求提供这些信息。

inlineregister (shudder)这样的东西是对编译器的建议,它可以自由地接受它们,忽略它们,甚至对你撒谎,说它是在你背后偷偷做而没有做的:-)

我倾向于不使用这样的特性,因为我怀疑编译器通常比我更清楚如何最大限度地提高代码的性能。

票数 10
EN

Stack Overflow用户

发布于 2010-03-05 13:40:52

您可以分析您的代码,并查看感兴趣的函数是否出现在调用堆栈中。不过,我想如果你的堆栈采样率不够高,那是不能保证的。

但这可能证明它是内联的:如果您知道A调用B,而后者调用C,而A从不直接调用C,如果您看到A在调用堆栈上调用C,那么您就知道B是针对该调用的内联。

票数 2
EN

Stack Overflow用户

发布于 2010-03-05 12:37:31

将编译器设置为生成汇编器代码,并在此处进行检查。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2384571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档