我一直在想,找不到关于这个问题的明确答案。
想象以下两个例子。
int i;
for(i=0;i<maxLimit;i++)
{
//code here
}
第二个例子
for(int i=0;i<maxLimit;i++)
{
//code here
}
基本上,如果他们是那样的话,我相信两者的行为会完全相同,但考虑到这一点时,我的疑问就出现了
while(!file.EOF)
{
for(int i=0;i<maxLimit;i++)
{
//code here
}
}
当第二个例子在循环内部时,它是如何执行的?是事先声明好简单的放回0还是执行时间和里面声明一样?
我个人通常把它放在第 2 位,因为我觉得它在视觉上更好看。但我想知道如果它在一个循环内它会产生什么影响。
感谢您的回答。
最佳答案
大多数现代编译器都非常复杂,您在此级别做出的任何决定都可能没有任何区别(需要澄清的是,经过分析,编译器可能已将两者转换为相同的内部表示 - 是最有效的实现)。但是,如果您不相信,在这种情况下的黄金法则就是与分析器核实。
关于c++ - 性能:循环中的声明 VS 循环中的重新初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11164030/