2011-01-23 1 views
3

gcc에서 C90 코드를 컴파일 중입니다. NC 값 입력 파일에서 읽어 정수C90 코드를 컴파일하는 동안 gcc 컴파일러에서 "ISO C90이 가변 크기 배열을 금지합니다"라는 메시지가 표시됨

int symbols[nc];

같은 선언을하는 동안 나는 경고 ISO C90 forbids variable-size array을 얻고있다. 입력 파일의 값은 다양하므로 일정한 값을 유지할 수 없습니다. 어떻게 제거 할 수 있습니까? 실제로이 경고를 해결할 필요가 있거나 단순히 무시할 수 있습니까?

미리 감사드립니다.

답변

5

C90은 variable length arrays을 지원하지 않으므로 경고 메시지가 나타납니다.

-std = c99 또는 std = gnu99 명령 줄 플래그를 사용하여 gcc를 C99 모드 (vla를 지원)로 전환하거나 메모리를 동적으로 할당하거나 고정 크기를 사용하도록 코드를 다시 작성해야합니다 정렬.

경고는 단지이 경우 C90을 따르지 않는다고 경고하지만, 그렇지 않은 경우 안전합니다. 경고를 무시하는 것은 실제로는 옵션이 아니어야합니다.

+2

gcc가이 코드를 볼 수있는 유일한 컴파일러 인 경우 경고에 -Wno-vla를 추가하면 경고를 무시하는 습관에 빠지는 것보다 안전합니다. –

+0

감사합니다 크리스토퍼. 이 주제에 대한 모든 Google 검색 결과 중 귀하는이 옵션에 대해 알려주는 유일한 사람입니다. – shuhalo