-2

我有这样的功能

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

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

g++ -c -g -墙
编译

有任何想法吗??

4

1 回答 1

1

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

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

warning: ISO C++ forbids variable length array ‘buf’ [-Wvla]
于 2013-03-01T23:11:31.933 回答