我如何知道cl.exe是否应用了c89或c99?

时间:2010-05-30 11:47:54

标签: c c99 c89

我刚刚在post

中看到了这个词

如何检查编译器实际使用的规则?

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

2 个答案:

答案 0 :(得分:5)

C99编译器必须定义一个值为199901L的前置符号__STDC_VERSION__,C90不应该这样做(没有什么能阻止他们这样做并仍然符合C90,但我怀疑他们这样做)。对于非兼容模式下的非兼容编译器或编译器,显然没有什么是肯定的。还有bug和转换的问题(上次我检查过,g ++还没有在C ++ 98规定的值上定义等效的宏,而我知道的大多数人认为它对他们来说更有用。这样做而不是等待export)的实施。

答案 1 :(得分:1)

cl.exe,Microsoft编译器?它主要不支持C99。