0

我刚开始用 C 编程,但我完全糊涂了。

我曾经在 Visual Studio 2012 中编写代码,但它与 C89(或 ANSI C?)兼容。我已经用 MinGW 编译器安装了 CodeBlocks。我想学习如何知道我可以编程的计算机中的 C 标准是什么?C89、C90、C99 甚至 C1X?或者我不明白这是什么意思。什么决定了我的计算机中的 C 标准?编译器还是IDE?

4

2 回答 2

3

它不取决于您的计算机,而是取决于您的编译器。毕竟,计算机(我指的是 CPU)不处理 C 语言,而是处理机器指令。是编译器根据某些标准解释 C 并将其转换为 CPU 友好的指令。

GNU Compiler Collection可以处理各种 C 标准,您可以使用flag-std=从中选择。

另外:在某些(嵌入式)系统上,您只能选择有限的编译器,这些编译器可能只支持有限数量的标准。因此,以这种方式,您可用的 C 标准可能仅限于您的计算机。

于 2013-07-24T11:51:53.737 回答
0

添加一点 Kninnug 的好答案,以帮助您了解标准之间的差异:

Wikipedia 有许多有用的链接,描述了各种 C 之间的差异,甚至在哪里可以获得标准的“最终草案”,这些都是免费的。我发现这些对于编写严格兼容的代码非常有用。

http://en.wikipedia.org/wiki/C11_%28C_standard_revision%29指向http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf

然后,如果您在 POSIX(例如,Linux)世界工作,那么 UNIX 世界的 C 标准的 POSIX 扩展也很有用。一个好的起点是

http://pubs.opengroup.org/onlinepubs/009695399/

这是您获得 C 标准中没有的东西的地方,例如 getopt()。我再次建议浏览有关该主题的 Wikipedia 页面。

于 2013-07-24T12:57:29.230 回答