int main()
{
#if (!defined(__STDC__))
printf("非标准C!");
#elif defined(__STDC_VERSION__)
printf("标准C版本:%ld。", __STDC_VERSION__);
#else
printf("旧的标准C。");
#endif
getchar();
return 0;
}
预定义宏__STDC__表示标准C。__STDC_VERSION__表示标准C版本。C99对应的是199901L。
(注意有些编译器默认没有定义__STDC_VERSION__,甚至没定义__STDC__。所以查编译器手册更保险一点。)
====
[原创回答团]
你好,c99实际上只是一种规范。
具体实现的时候,各个编译的实现程度都是不同的。
visual studio系列就支持的比较差,但是visual studio同时也提供了很多便捷的新特性。
mingw对于c99支持的就非常好。
c primer plus这本书本身不会涉及很多具体编译器的内容。都是比较普遍支持的特性。
初学者可以先使用visual studio进行开发,这个上手比较快,功能多。
熟悉了之后,建议使用linux + mingw的环境进行学习。
如果我的回答能够帮助到你,希望能采纳我的回答。