【发布时间】:2021-03-06 15:50:18
【问题描述】:
我知道 C99 之前的编译器需要在函数开头声明变量来计算堆栈大小。然后取消了要求。如今,除了向后兼容之外,仍然坚持该方案是否有任何好处,或者可能仅在需要变量时以及在哪里需要更好地声明变量? (例如在 if 语句中,一个分支需要一个变量,而第二个不需要)
【问题讨论】:
-
这感觉有点基于意见。话虽如此,为了清洁,我总是建议只从需要它们的地方声明变量。如果您只需要在单个块中使用变量,为什么要在该块之外声明它?
-
@ThomasJager:有一些编码标准,其中 MISRA 是最常见的,它不允许混合代码和声明。但是,我同意这太宽泛了,应该关闭。我认为你应该有足够的代表来近距离投票?
-
@toohonestforthissite 您能否指出具体的 MISRA 规则,该规则要求仅在函数或块范围的开头声明变量?
-
这个意见的依据是什么。我要事实,而不是意见。事实证明,不,没有真正的速度或性能方面的好处。不知道为什么你们总是将内容标记为基于意见。
-
这个问题中唯一基于意见的是 cmets。