Answers:
每种语言在风格和实践上的偏好可能会有所不同。以下是JSF-AV-rules的内容,Stroustrup将其作为他偏爱的编码标准。
AV规则136
Declarations should be at the smallest feasible scope
其基本原理被描述为
This rule attempts to minimize the number of live variables that must be simultaneously considered. Furthermore, variable declarations should be postponed until enough information is available for full initialization
如果您使用的是C ++,则首选在需要时声明变量。
不知道您是否可以将其称为最佳实践。在为新的C项目设置准则时,我总是指出,最好将变量声明为接近使用它们的位置。由于两个原因,它使得以后重构代码(即提取方法时)更加容易。它还有助于编译器进行更好的优化。
我并不孤单。这是一个解决相同问题的问题:https : //softwareengineering.stackexchange.com/questions/56585/where-do-you-declare-variables-the-top-of-a-method-or-when-you-need -them 答案是在使用它们的地方声明它们。罗伯特·C·马丁(Robert C. Martin)的《清洁代码》(Clean Code)一书中描述了相同的做法。
但是,如果使用较旧的C标准(C-89),则必须在函数顶部定义局部变量。因此,从使用C-89以来,该指南是否可能仍然存在?最好问一下编写指南的人,为什么规则仍然存在。