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

htt*_*ret 2 c c99 c89

我刚在这篇文章中遇到过这个词,

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

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

APr*_*mer 5

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