在C或C++,如果编译器遇到一个for循环,其中一个计数器从计数0到n,并且n是可变的(不是函数调用,并且不是常数要么),将编译器通过检查优化循环,如果该变量n(该在循环期间(访问写入,例如:n可以是在循环之前计算的字符串的长度),将更改绑定变量),通过优化这里我的意思是将其值复制到寄存器以避免内存访问?
这是一个例子:
for (int c = 0; c < n; c++) {
// do something not related to n
}
Run Code Online (Sandbox Code Playgroud)
编译器会注意到并优化它吗?