我刚开始用C语言编程,但我完全糊涂了。
我曾经在Visual Studio 2012中编写代码,但它与C89(或ANSI C?)兼容。我已经用MinGW编译器安装了CodeBlocks。我想学习如何知道我可以编程的计算机中的C标准是什么? C89,C90,C99甚至C1X?或者我不明白这意味着什么。什么决定了我的电脑中的C标准?编译器还是IDE?
答案 0 :(得分:3)
它不依赖于您的计算机,而是依赖于您的编译器。毕竟,计算机(我指的是CPU)不处理C而是使用机器指令。编译器根据某些标准解释C并将其转换为CPU友好指令。
GNU Compiler Collection可以处理各种C标准,您可以使用-std=
flag进行选择。
添加:在某些(嵌入式)系统上,您只能选择有限的编译器,这可能只支持有限数量的标准。因此,可用的C标准可能仅限于您的计算机。
答案 1 :(得分:0)
为Kninnug提供一些很好的答案,帮助您理解标准之间的差异:
维基百科有许多有用的链接,描述各种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/
这是你得到的东西,比如getopt(),它们在C标准中找不到。我再次建议探索有关该主题的维基百科页面。