A. 如何在vim中编译C程序时,默认使用C99标准
gcc默认是不支持c99及以上版本的 如果想支持,需要在编译时加参数:-std=c99 gcc -std=c99 -o xx xx.c 或者在源码里定义宏 #define __STDC_VERSION__ 199901L
B. 如何知道当前编译器是否是C99标准的有什么指令可以查到
#include<stdio.h>
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__。所以查编译器手册更保险一点。)
====
[原创回答团]
C. 有完全支持C99的编译器吗
真遗憾,目前没有哪款编译器都完全支持C99标准的。
支持的比较好的也就是GCC编译器了,也只能达到85%的样子。
没有100%支持的。
D. 怎样让csdn的在线编译器支持C99
如果编译器的版本太低, 不支持就是不支持了, 没有办法. 但是如果 编译器支持的话(默认没有开启), 那编译的时候 加上 -std=c++依依 或者 -std=c++0x 类似这样: g++ -std=c++依依 main.cpp -o main 就行了. 据我所知: gcc 四.陆.三 开始支持, 四.吧 完全支持 clang++ 三.依 之后 也完全支持. 如果有什么问题, 再交流
E. 请问什么编译器支持c99标准
告诉你一个坏消息
vc++
2005支持的是c89
而不是c99
这点可以在一次对vs2005的负责人的采访中看出来
他解释了为什么vs2005支持c89
而不支持c99
目前完全支持c99标准的编译器还不存在
支持部分c99标准的编译器也不多
做的最好的是gcc