0

自 C99 发布以来已经十多年了。然而,到目前为止,几乎没有编译器支持 C99 的所有新特性。为什么?

BTW:真的有完全符合 C99 的编译器吗?

4

2 回答 2

2

根据Wikipedia: C99 Implementations,大多数流行的编译器(Visual Studio 除外)支持大多数但不是所有 C99 功能(如 gcc 或 clang),但是,是的,一些编译器已经完全符合 C99。

我认为原因之一是某些 C99 功能对某些编译器供应商没有用处。另一方面,最新的标准 C11 允许实现不支持标准的某些部分——包括 C99 中强制支持的一些部分,如复杂类型和可变长度数组。(参见 C11 §6.10.8.3条件特征宏

于 2013-07-31T05:07:28.617 回答
0

BTW:真的有完全符合 C99 的编译器吗?

两大公域编译器 clang 和 gcc 都可以的。C 库中可能还存在一些小问题,但 C 库通常是与编译器不同的项目。

clang 将 C99 作为其默认值,并且相对快速地向 C11 移动。

带有标志-std=c99的 gcc 符合任何实际目的。

于 2013-07-31T06:18:10.680 回答