我有这样的功能
void foo( int i) { ... uint8_t buf[ i]; ... }
我不明白为什么编译器不抱怨... 我正在使用
g++ -c -g -Wall来编译
任何想法??
答案 0 :(得分:1)
这是GCC compiler extension。符合实现的标准允许它,因为它不会破坏任何格式良好的代码(只要它发出诊断)。当然,它不是便携式的,因此不推荐使用。
使用-pedantic
选项,您会收到以下警告:
warning: ISO C++ forbids variable length array ‘buf’ [-Wvla]