我有這樣靜態數組,可變大小允許?
void foo(int i) { ... uint8_t buf[ i]; ... }
的功能,我不明白爲什麼編譯器不抱怨...... 我使用
g++ -c -g -Wall編譯
任何想法?
我有這樣靜態數組,可變大小允許?
void foo(int i) { ... uint8_t buf[ i]; ... }
的功能,我不明白爲什麼編譯器不抱怨...... 我使用
g++ -c -g -Wall編譯
任何想法?
這是一個GCC compiler extension。標準允許符合實現,因爲它不會破壞任何格式正確的代碼(只要它發佈診斷)。當然,這不是便攜式的,因此不推薦。
隨着-pedantic
選項,你會得到以下警告:
warning: ISO C++ forbids variable length array ‘buf’ [-Wvla]
如果**編譯器發佈診斷,則允許**。 – 2013-03-01 23:12:21
哦!這是新的還是什麼?我的意思是擴展 – santi 2013-03-01 23:13:03
@santi現在已經有很長一段時間了。 – 2013-03-01 23:14:15
這是一個編譯器擴展。我相信你可以在這裏找到重複。 – chris 2013-03-01 23:10:08
[可變長度數組](http://en.wikipedia.org/wiki/Variable-length_array) – Mahesh 2013-03-01 23:10:38
我想你會得到一個警告,如果你指定例如'-std = C++ 11'並有一個'-pedantic'選項。 – 2013-03-01 23:11:48