|
|
1
6
经验法则是变量应该尽可能的局部化。如果你能做到的话,可以加分
|
|
|
2
5
好的,关于块顶部的声明是c89和k&r,但是由于c99,您可以混合声明和语句。这种风格持续存在,可能是有充分理由的,但不是必需的。 有一段时间,如果您在使用本地变量的地方声明了很多本地变量,那么一些编译器会做得更好,因为这会使寄存器分配更好。在C99之前,您必须在块的顶部声明它们,或者使用供应商扩展,但是您仍然可以决定实际上 使用 每个变量只在代码的局部区域中。 在一个点上,用更灵活的声明来支持这一点可能是很重要的,但我怀疑现在的优化器不需要这种帮助。 有些编码标准要求在函数顶部声明。我不知道这样做是为了让你能找到它们,还是只是因为那些不这样做可能会限制向后可移植性的日子留下的。 一般来说,标准越正式,它就越不喜欢交错语句和声明,除了循环控制变量。就我个人而言,我不认为有什么问题。 混合声明的优点 :地点。对编译器好,对读者好。在函数顶部声明循环变量可能带来什么好处?为了一个不相关的目的在页面下面重用一个变量,对于可能不需要的交互来说,这看起来既混乱又不明智。 分组声明的优点 :代码在主观上看起来更干净,您知道在哪里可以找到每个声明,如果您的函数的顶部离变量的使用太远,也许这就告诉您需要从明显太大的函数中提取第二个或第三个函数。 |
|
|
3
2
其中声明变量不会影响代码生成。所有的函数变量在第一行代码执行之前放在堆栈上(至少这是观察到的行为)。正如您已经知道的,关于变量声明的规则早已过时。在顶部声明变量有以下优点
是的,我会让变量尽可能的局部化。如果一个变量只在一个循环或控制流中使用,甚至是一个无意义的{}对(我用它来防止名称冲突),那么在那里声明它们。把著名的n或i变量带入for循环。如果有多个,则每个for循环都需要一个唯一的var名称,这将变得烦人。 |
|
|
metrallador10 · 哪种代码更好?效率与代码可读性 2 年前 |
|
|
Justin Xu · 使用return if语句进行重构验证 3 年前 |
|
|
Cino · 如何以体面的方式处理Python异常? 3 年前 |
|
|
SAI BENDE · 如何在多个html文件中使用单个导航栏 3 年前 |
|
|
fstab · 对正常控制流程使用例外情况是一种不鼓励还是不鼓励的做法? 12 年前 |
|
|
SwampYeti · 在CSS中拉伸小背景图像 13 年前 |