变量声明成本高吗?

2024-03-11

在用C语言编写代码时,我遇到了以下情况。

int function ()
{
  if (!somecondition) return false;

  internalStructure  *str1;
  internalStructure *str2;
  char *dataPointer;
  float xyz;

  /* do something here with the above local variables */    
}

考虑到if上面代码中的语句可以从函数返回,我可以在两个地方声明变量。

  1. 之前if陈述。
  2. 之后if陈述。

作为一名程序员,我会认为将变量声明保留在if陈述。

报关地点需要收费吗?或者还有其他原因选择其中一种方式而不是另一种方式吗?


在 C99 及更高版本(或 C89 的常见一致扩展)中,您可以自由地混合语句和声明。

就像在早期版本中一样(随着编译器变得更智能、更积极,情况会更糟),编译器决定如何分配寄存器和堆栈,或者执行符合 as-if-rule 的任意数量的其他优化。
这意味着就性能而言,预计不会有任何差异。

Anyway,这不是允许这样做的原因:

这是为了限制范围,因此减少人们必须记住的背景在解释和验证您的代码时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

变量声明成本高吗? 的相关文章

随机推荐