【发布时间】:2014-10-15 12:05:20
【问题描述】:
for(int i = 0; i < my_function(MY_CONSTANT); ++i){
//code using i
}
在这个例子中,my_function(MY_CONSTANT) 会在每次迭代时被评估,还是会自动存储?这是否取决于使用的优化标志?
【问题讨论】:
-
将在每次迭代中进行评估。最好将其存储为变量。
-
loop condition evaluation 的可能重复项
-
@guygree,不是重复的,那里没有函数调用。
-
@Basilevs,我认为这不会改变这里的情况,表达式(无论那个表达式是什么)每次都需要重新评估。我认为特别是this 回答总结得很好
-
不过,原始问题完全不同。
标签: c++ loops optimization as-if