在循环中声明变量是否有任何开销?(C ++)我只是想知道如果你做了这样的事情会有任何速度或效率的损失:int i = 0;while(i < 100){
int var = 4;
i++;}宣告int var一百次。在我看来会有,但我不确定。这样做会更实际/更快:int i = 0;int var;while(i < 100){
var = 4;
i++;}或者它们是相同的,速度和效率方面的?
3 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
这些天最好在循环中声明它,除非它是一个常量,因为编译器将能够更好地优化代码(减少变量范围)。
编辑:这个答案现在已经过时了。随着后经典编译器的兴起,编译器无法弄清楚的情况越来越少。我仍然可以构建它们,但大多数人会将构造归类为坏代码。
青春有我
TA贡献1784条经验 获得超8个赞
#include <stdio.h>int main(){ for(int i = 0; i < 10; i++) { int test; if(i == 0) test = 100; printf("%d\n", test); }}
上面的代码总是打印100次10次,这意味着内部循环中的局部变量每个函数调用只分配一次。
- 3 回答
- 0 关注
- 479 浏览
添加回答
举报
0/150
提交
取消