为什么GNOME不使用C99?

edu*_*rdo 5 c coding-style gnome c99 c89

看看mutter源代码evince源代码,两者仍然使用C89样式在函数的最开始声明所有变量,而不是首次使用它(有限的范围是好的).他们为什么不使用C99?GNOME 3最近推出,而且mutter很新,所以如果原因是与旧代码风格的兼容性,这可能是一个很好的切换机会.

这是否意味着GNOME的代码需要用C89编写?

R..*_*R.. 1

许多人认为在整个地方声明变量,而不是在块的开头声明变量,这种风格很糟糕。它使得查找声明的工作量稍微增加了一些,并且使得您必须检查整个函数才能找到所有声明。此外,无论出于何种原因,语句后的声明是 GCC 最后实现的 C99 功能之一,因此在很长一段时间内,它是一个主要的兼容性考虑因素。