VC++支持ANSI C毋庸置疑,不過對因而否支持C99,我倒看到兩種說法:數組
1. 不支持C99.函數
2. 支持C99的個別特性.blog
- http://en.wikipedia.org/wiki/ANSI_C#Compilers_supporting_ANSI_C
- http://social.msdn.microsoft.com/Forums/pl-PL/vclanguage/thread/8c3ce91d-e4bc-4a95-a122-b19cac1e94aa
究竟是神馬狀況? 我試驗了VC++ 2010,能夠肯定VC++ 2010支持C99下面的幾個特性:ip
- 支持 // 開頭的單行註釋
- 支持 long long等數據類型,可是printf、scanf的格式化串不支持long long類型
- 支持可變參數宏
VC++ 2010不支持C99下面的幾個特性:ci
- 支持不定長的數組
- 變量聲明沒必要放在語句塊的開頭
- 除了已有的 __line__、__file__ 之外,增長了 __func__ 獲得當前的函數名。
結論就是VC++ 2010對C99的支持少得可憐的。get
ps: VC++ 2010雖然用不了,可是能夠用__FUNCTION__。可是__FUNCTION__和__func__性質是不同的。前者是VC++編譯器指定的,後者是C99標準指定的。編譯器