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