【发布时间】:2013-04-02 10:59:46
【问题描述】:
我想知道 GCC 是否会将具有固定值的算术保留在运行时执行,或者是否会将其设置为它的答案,例如。
const float halfPi = M_PI/2;
它会“归结”方程式并设置
const float halfPi = 1.57079;
还是把算法留给运行时?
【问题讨论】:
-
看看汇编输出:
gcc -S -
GCC -O1 及以上肯定会在编译时执行此操作。事实上,GCC 中有更多代码用于处理用户定义的函数——另见 constexpr。
-
仅供参考,此优化称为constant folding。
-
感谢 dascandy 和 unwind 的 cmets。
标签: c++ c math optimization gcc