C99 compilers must define a preprcessor symbol __STDC_VERSION__ with value 199901L which C90 one shouldn't do this (nothing prevent them to do so and still be compliant with C90, but I doubt they do). Obviously nothing is sure for non compliant compilers or compilers in non compliant mode. And there are still the question of bugs and transition (last time I checked for instance, g++ didn't still define the equivalent macro at the value mandated for C++98 while most people I know think it would be more usefull for them to do so instead of waiting for the implementation of export).
发布评论
评论(2)
C99 编译器必须定义一个预处理器符号
__STDC_VERSION__
,其值为 199901L,而 C90 编译器不应该这样做(没有什么可以阻止他们这样做,并且仍然符合 C90,但我怀疑他们这样做)。显然,对于不兼容的编译器或处于不兼容模式的编译器来说,没有什么是确定的。并且仍然存在错误和转换的问题(例如,上次我检查时,g++ 仍然没有按照 C++98 规定的值定义等效的宏,而我认识的大多数人认为这对他们来说更有用这样做而不是等待导出
的实现)。C99 compilers must define a preprcessor symbol
__STDC_VERSION__
with value 199901L which C90 one shouldn't do this (nothing prevent them to do so and still be compliant with C90, but I doubt they do). Obviously nothing is sure for non compliant compilers or compilers in non compliant mode. And there are still the question of bugs and transition (last time I checked for instance, g++ didn't still define the equivalent macro at the value mandated for C++98 while most people I know think it would be more usefull for them to do so instead of waiting for the implementation ofexport
).cl.exe,微软编译器?它主要不支持 C99。
cl.exe, the Microsoft compiler? It doesn't support C99, mostly.