快速的表现/记忆问题:
如果有差异,有什么更好的呢?
此
int x;
for (int i = 0; i < 10000; i++)
{
x = i;
//do something
}
或者
for (int i = 0; i < 10000; i++)
{
int x = i;
//do something
}
答案 0 :(得分:3)
我认为它们在汇编方面都是相同的(有时候只需要执行大量的堆栈推送比局部变量的推送弹出更快)。它只会在第二种情况下减小x的范围,即使它们都产生相同的字节码。
答案 1 :(得分:3)
它完全相同...定义一个变量(原语/引用)只是计算它将存在的位置(作为堆栈指针的偏移量)。这是由编译器完成的。