2013-03-01 1 views
-2

나는이정적 배열, 가변 크기가 허용됩니까?

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

같은 기능을 가지고 있고이

g++ -c -g -Wall
를 사용하고 불평하지 않는 컴파일러 ... 이

어떤 아이디어를 컴파일하는 이유를 이해하지?

+0

그것은 컴파일러 확장의 다음 -pedantic 옵션을

, 당신은 다음과 같은 경고를 얻을 수 있습니다. 네가 여기에서 사본을 찾을 수있을거야. – chris

+0

[가변 길이 배열] (http://en.wikipedia.org/wiki/Variable-length_array) – Mahesh

+1

예를 들어 지정하면 경고 메시지가 표시됩니다. '-std = C++ 11'과'-pedantic' 옵션을 가지고 있습니다. –

답변

1

GCC compiler extension입니다. 적합성있는 구현을 위해 표준에 의해 허용됩니다. 올바른 코드를 깨지 않기 때문입니다 (진단을 내리는 한). 물론 휴대용이 아니므로 권장하지 않습니다.

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

** 컴파일러가 진단을 내릴 경우 ** 허용됩니다. –

+0

오! 그게 새로운 것인가? 내 연장을 의미합니다 – santi

+0

@ 산티 그것은 좋은 동안 지금 거기에있어. –