0

这是一个纯粹的风格问题,但是,第一种或第二种方式的代码更具可读性?有规矩可以讲吗?(我认为代码效率是一样的,还是不是?)

4

1 回答 1

1

我认为您可能是指assignmentinitialization而不是allocation。做出这个假设,通常认为在同一行中声明和赋值会更好。

所以而不是

int x; // declare
// ... some lines of code
x = y + z; // assign

int x = y + z;

这具有以下优点

  • x在分配之前没有“错误”的值。在某些语言中, in 的值x甚至是未定义的。

  • 将声明与第一次使用相关联,因此更具可读性。

  • 鼓励您稍后声明变量的样式,因此您不会在首次初始化它们之前无意中使用它们。

确实有讨论这个的规则:许多编码标准指定在声明时初始化变量,并尽可能晚地声明它们。

在我看来,这主要与效率无关。例如,在 C++ 之类的编译语言中,许多编译器可以并且将会发现您在分配变量之前没有使用该变量,并且只会在分配点分配内存。但是一般来说,通过以最简单、最简约的方式编程,您的系统意图越清楚,您的编译器就能够更好地优化您的代码。因此,例如,如果您是 C 或 Delphi 程序员,习惯于所有声明必须位于函数顶部的旧限制,并决定解释“与声明同时赋值”以尝试移动所有您的分配直到您的声明所在的函数顶部,不是您的声明,那么您可能会引入低效率和很可能的错误。

于 2013-05-23T08:34:54.687 回答