C99 已经支持了。
C++98 和 C++11 的时候,gcc 是以扩展的形式支持的;
本来有望在 C++14 标准中支持,但讨论了半天,最后还是被砍掉了
( gcc 都脱了裤子上了,C++14 正式出来之后又把裤子穿上了)。
所以,现在 gcc 还是以扩展的形式支持,就和 C++98、C++11 的时候一样。
## GCC 4.9 的发布说明
> G++ supports C++1y variable length arrays. G++ has supported GNU/C99-style VLAs for a long time, but now additionally supports initializers and lambda capture by reference. In C++1y mode G++ will complain about VLA uses that are not permitted by the draft standard, such as forming a pointer to VLA type or applying sizeof to a VLA variable. Note that it now appears that VLAs will not be part of C++14, but will be part of a separate document and then perhaps C++17.
## GCC 5 的发布说明
> G++ no longer supports N3639 variable length arrays, as they were removed from the C++14 working paper prior to ratification. GNU VLAs are still supported, so VLA support is now the same in C++14 mode as in C++98 and C++11 modes.
## 上面提到的 N3639
[N3639](
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3639.html)