循环外的变量
int number = 0;
for(int i = 0; i < 10000; i++){
number = 3 * i;
printf("%d",number);
}
或循环内的变量
for(int i = 0; i < 10000; i++){
int number = 3 * i;
printf("%d",number);
}
建议使用哪一种,性能最好的一种?
编辑:
这只是展示我的意思的一个示例,我想知道的是,如果在循环内和循环外定义变量意味着同一件事,还是有区别。
最佳答案
是时候尽早学习一些东西了:面对printf,您可以对类似的东西进行的任何优化都是无关紧要的。
Printf会非常非常慢。您可以将数学提高五倍,而不会出现可测量的速度下降。这只是在终端上打印的本质。
至于您所编辑的问题,在循环或外部定义它都没有区别。想象一下
for (i = 0; i < 500; i++) {
int a = i * 3;
}
与...相同
int forloop::a; // This doesn't work, the idea is to show it just changes the scope
for (i = 0; i < 500; i++) {
a = i * 3;
}
它们将产生相同的代码,除非您开始需要在定义该变量的循环外部使用该变量,因为它是在循环的局部范围内定义的。所以...更多像这样:
int forloop::a; // Still not valid code, just trying to show an explanation
namespace forloop {
for (i = 0; i < 500; i++) {
a = i * 3;
}
} // namespace forloop
如果不清楚,请告知我,我们将进行更详细的说明或以其他方式进行解释。
关于c++ - 简单循环,哪一个可以提高性能,推荐哪一个?在循环内还是循环外定义变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10002410/