比如哪个gcc版本支持c99?
是否有任何表格或图表来显示 gcc 和 g++ 的标准支持状态?
gcc 和 g++ 是如何演变的?
谢谢~
非常严格地说,GCC 只支持 C89、C++98 和 C++03,从 4.3 开始都是肯定的。
到目前为止,对 C99 的支持仍然不完整,但是 GCC 长期以来一直支持一个非常大且可用的子集。
实验性的 C++11 支持从 4.3 开始,此后一直在改进;它在 4.6.x 中已经非常有用,并且在 4.7 中添加了更多功能(尽管 4.7.0 有点不稳定)。
也有一些 C11 支持,但 C11 的许多更改需要一个适当的新 C 库,它不容易替换。
您可以通过最新版本获得最广泛的标准支持 - 目前为 4.7。选择的标准可以用-std
开关设置。这是一篇描述可用值的文章。还可以使用 启用一些附加功能/不同行为-fpermissive
。
我想这个表也很有用: cppreference compiler support page
支持细节可以在 gnu 网站上找到。我记得大约有几十个标准 gcc 不适用于 c99。无论如何,在 gcc 中支持 c99 只需要简单的 --std=c99 参数