我应该遵循哪个 C 标准?

use*_*754 0 c standards

在 C18、C11、C99 和 ANSI C 中,我(当前)应该遵循哪个标准,为什么?找出哪些编译器支持哪些标准的最佳方法是什么?对于不同的编程领域,这种选择有何不同?

klu*_*utt 5

在 C18、C11、C99 和 ANSI C 中,我(当前)应该遵循哪个标准,为什么?

一般都是最新的。除非您有异议,否则请使用最新的版本。

反对使用 C18 的一个论点是,该文档似乎还没有免费提供,但 C11 可以。嗯,自由自在。至少它们在这里: https: //port70.net/~nsz/c/请注意,这些不是最终的,但对于大多数用途来说它们已经足够好了。感谢@Lundin 和@JohnBode 指出这一点。

另一个论点是,您可能希望支持某些不支持较新标准的平台。

我强烈建议不要使用 ANSI,除非你别无选择。C99版本是一个非常大的改进。之后又出现了一些不错的新功能,但变化最大的是C99。

找出哪些编译器支持哪些标准的最佳方法是什么?

谷歌。或者查看您感兴趣的编译器的文档。但是,请注意,某些编译器可能不 100% 兼容某个 C 版本,即使它们声称如此。