Edu*_*rdo 6 c scope c99 variable-declaration
为什么C99混合声明和代码没有在Linux内核或GNOME等开源C项目中使用?
我非常喜欢混合声明和代码,因为它使代码更具可读性,并且通过将变量的范围限制在最窄的范围内来防止难以看到错误.这是Google for C++推荐的.
这是一个老问题,但我认为惯性是大多数项目仍然使用 ANSI C 声明规则的原因。
然而,还有许多其他可能性,从有效到荒谬:
可移植性。许多开源项目都假设迂腐的 ANSI C 是编写软件的最可移植的方式。
年龄。其中许多项目早于 C99 规范,并且作者可能更喜欢一致的编码风格。
无知。提交早于 C99 的程序员并没有意识到混合声明和代码的好处。(另一种解释:开发人员充分意识到潜在的权衡,并认为混合声明和声明不值得付出努力。我非常不同意,但很少有两个程序员会在任何事情上达成一致。)
FUD。程序员将混合声明和代码视为“C++主义”并且因此不喜欢它。