gpt4 book ai didi

c++ - 两个宏之间重复运算的效率

转载 作者:太空宇宙 更新时间:2023-11-04 05:21:30 25 4
gpt4 key购买 nike

在我正在处理的 ANSI C 项目中,我定义了两个宏:PERIOD_IN_MSCYCLES_PER_MS。在实际的周期处理逻辑中,我对每个“周期”递增的计数器和 PERIOD_IN_MS * CYCLES_PER_MS 进行了许多比较。我担心每次比较期间都会重复计算此算术运算。

有谁知道这是不是真的,或者编译器是否会在编译时评估两个整数文字的乘积并改为使用它?

我意识到这个特定示例可能只会从生成的汇编代码中删除一条指令,但现在我对此很好奇。

最佳答案

标准没有强加任何要求这样做,但任何明智的编译器都会在编译时将这些常量折叠成一个。参见例如http://en.wikipedia.org/wiki/Constant_propagation .

如果您想知道这是否确实发生了,您可以随时查看编译器生成的汇编程序。

关于c++ - 两个宏之间重复运算的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5083998/

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