-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 に答える