1. 程式人生 > >C/C++到底支不支援定義不定長陣列

C/C++到底支不支援定義不定長陣列

    事實上,不定長陣列的定義早在C的C99標準裡就已經被提出,但是從來都沒在C++標準(C++98、C++03、C++11)裡存在過。因此,G++支援不定長陣列完全是因為它同時支援C99和C++(對C99標準支援得最好的就是G++了),而VS不怎麼支援C99標準那是人盡皆知的,也就理所當然不支援C99的不定長陣列了。另外Turbo C 3.0不支援是因為它非常古老,本身就不支援C99。

  PS:目前沒有編譯器可以完全實現C99,而且為了相容性,在寫C程式碼時,通常我們不會去用C99標準,編譯器也是預設不使用C99的,因此C語言的書裡說不允許這樣定義陣列,也是可以理解的。而C++ primer裡也這麼說,那是因為它說的是事實,C++里根本就不支援不定長陣列。