静态数组,允许可变大小?

时间:2013-03-01 23:09:25

标签: c++

我有这样的功能

void foo( int i)
{
   ...
   uint8_t buf[ i];
   ...
}

我不明白为什么编译器不抱怨... 我正在使用

g++ -c -g -Wall
来编译

任何想法??

1 个答案:

答案 0 :(得分:1)

这是GCC compiler extension。符合实现的标准允许它,因为它不会破坏任何格式良好的代码(只要它发出诊断)。当然,它不是便携式的,因此不推荐使用。

使用-pedantic选项,您会收到以下警告:

warning: ISO C++ forbids variable length array ‘buf’ [-Wvla]