Rya*_*yan 3 c++ performance processing-efficiency
例如,如果我有:
if(x < 2*0.025) { ... }
是否2*0.025得到计算每一次?或者是否0.05取代,以便乘法操作不必每次都运行?
2*0.025
0.05
换句话说,使用它0.05而不是更有效2*0.025吗?
das*_*ght 5
我知道的每个编译器都实现了常量折叠,即在编译时计算常量表达式,因此没有区别.但是,该标准并未强制要求:
可以在转换期间而不是运行时期间评估常量表达式,并且因此可以在常量可以在任何地方使用.
您可以使用某些编译器显式禁用此优化.例如,-frounding-math禁用gcc中浮点表达式的常量折叠.
-frounding-math
归档时间:
13 年,9 月 前
查看次数:
89 次
最近记录: