gpt4 book ai didi

c - 是否每次都读取数组值作为循环停止条件?

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

例子:

for (int i = 0; i < a[index]; i++) {
// do stuff
}

a[index]每次都读?如果不是,如果有人想更改 a[index] 处的值怎么办?在循环?我自己从来没有见过,但是编译器会做出这样的假设吗?

如果条件改为 i < val-2 ,每次都会评价吗?

最佳答案

当系统不受程序其他部分的影响时,编译器将正常执行优化。因此,如果您在 for 循环内对条件参数进行更改,编译器将不会优化。

如前所述,编译器应该在代码片段中的每次迭代之前读取数组并检查它。您可以按如下方式优化您的代码,然后它将只读取数组一次以进行循环条件检查。

int cond = a[index];
for (int i = 0; i < cond; i++) {
// do stuff
}

关于c - 是否每次都读取数组值作为循环停止条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31766809/

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