我想知道如果我尽可能多地重用变量名是好是坏(或者不重要)?例如

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坐标,但在这种情况下,我会使用一些前缀或更长的名称。单字母变量名太短,无法给出有关变量用途的有意义提示。
编辑:正如一些注释(以及其他一些答案)指出的,潜在的内存节省(如果有的话)取决于编译器的性能。编写良好的优化编译器可能会意识到两个变量没有重叠的生存期,因此它们无论如何只分配一个变量槽。最终的结果将是没有运行时增益和更不易维护的源代码。这就加强了论点:不要重用变量。

关于c - 重用变量是好是坏?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17884339/

10-11 22:40
查看更多