c - 我如何知道 cl.exe 应用的是 c89 还是 c99?

标签 c c99 c89

我刚刚在这个 post 中遇到这个词,

我如何检查我的编译器实际使用了哪条规则?

或者是否可以为 cl.exe 指定一个规则?

最佳答案

C99 编译器必须定义一个值为 199901L 的预处理器符号 __STDC_VERSION__,而 C90 编译器不应该这样做(没有什么可以阻止他们这样做并且仍然符合 C90,但我怀疑他们这样做)。显然,对于非兼容编译器或非兼容模式下的编译器,没有什么是确定的。而且仍然存在错误和转换的问题(例如,上次我检查时,g++ 仍然没有在 C++98 规定的值上定义等效的宏,而我认识的大多数人认为这对他们更有用这样做而不是等待 export 的实现)。

关于c - 我如何知道 cl.exe 应用的是 c89 还是 c99?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2938460/

相关文章:

c - C 中枚举标志的替换

c - 使用 C 预处理器为 scanf 构造字符串文字?

javascript - 我可以保存一个文件,该文件将仅使用 javascript/C/C++ 在服务器端从 php 代码生成,并且没有打开浏览器吗?

c++ - 使用对讲机进行远程内存访问

c - C9 9's "restrict"关于指向指针的指针的语义是什么?

c - 我的 C 书中的神奇数字 127

c - 辨别指针和内存分配

更改一维和二维可变长度数组的大小

c - 为什么需要在 Visual Studio 2010 中将 FILE 指针声明为 main()?

c - 在函数中增加字符串大小时,realloc() 无效指针错误