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++里根本就不支持不定长数组。

转自:http://www.freemeepo.com/acm/881.html

你可能感兴趣的:(C/C++到底支不支持定义不定长数组)