我想知道如果我尽可能地重用变量名是好是坏(或者无关紧要)?例如
int main(void){
//...
int x=0;
//..
x = atoi(char_var);
//..
for (x=0; x<12; x++){
//...
}
//..
x = socket(...)
if(x<0){
//...
}
for(x=0;x<100;x++{
//...
}
return 0;
}
可以使用其他变量代替上面的 x
(可能更利于可读性),但我想知道它是否会为我提供二进制大小、性能或其他方面的任何好处?
最佳答案
一般来说,为不同目的重用变量名是非常糟糕的做法 - 如果其他人稍后需要维护您的代码,则该人将不得不在您的代码中找到这些“上下文切换”,其中 x
现在突然意味着不同于该行代码之前的含义。
你可能会节省一些内存,但与它引入的问题相比,这是非常小的,因此建议不要这样做。 (也请阅读下面的编辑。)
通常,除了循环计数器之外,还建议不要使用 1 个字符的变量名。有人可能会争辩说 x
也可以是 X 坐标,但在那种情况下我会使用一些前缀或更长的名称。单字母变量名称太短,无法提供有关变量用途的有意义提示。
编辑:正如一些评论(以及其他一些答案)所指出的,潜在的内存节省(如果有的话)取决于编译器的性能。编写良好的优化编译器可能会意识到两个变量没有重叠的生命周期,因此无论如何它们只分配一个变量槽。最终结果将是没有运行时 yield ,而且源代码的可维护性更差。这只是强化了论点:不要重用变量。
关于c - 重用变量是好是坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17884339/