我刚刚在这篇文章中遇到了这个词,
如何检查我的编译器实际使用了哪个规则?
或者是否可以指定规则cl.exe
?
C99 编译器必须定义一个__STDC_VERSION__
值为 199901L 的预处理符号,C90 不应该这样做(没有什么能阻止他们这样做并且仍然符合 C90,但我怀疑他们这样做)。显然,对于不兼容的编译器或处于不兼容模式的编译器,没有什么是确定的。而且仍然存在错误和转换的问题(例如,上次我检查时,g++ 仍然没有在 C++98 规定的值处定义等效宏,而我认识的大多数人认为这对他们来说更有用这样做而不是等待export
) 的执行。
cl.exe,微软的编译器?它主要不支持 C99。