gpt4 book ai didi

c++ - for 循环条件中常量的评估

转载 作者:太空狗 更新时间:2023-10-29 23:25:26 29 4
gpt4 key购买 nike

for(int i = 0; i < my_function(MY_CONSTANT); ++i){
//code using i
}

在这个例子中,my_function(MY_CONSTANT) 会在每次迭代时被评估,还是会被自动存储?这取决于使用的优化标志吗?

最佳答案

它必须就像每次调用该函数一样工作。

但是,如果编译器能够证明函数每次的结果都是相同的,它就可以在“好像”规则下进行优化。

例如这通常发生在调用标准容器的 .end() 时。


一般建议:当不确定是否对一段代码进行微优化时,

  1. 不要这样做。
  2. 如果您仍在考虑这样做,请衡量
  3. 嗯,还有第三点,但我忘了,也许是,还是等等。

换句话说,根据当时代码的清晰程度来决定是否使用变量,而不是根据想象的性能。

关于c++ - for 循环条件中常量的评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26362925/

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