2012-08-11 1 views
1

내 프로그램에 색상이 필요한 코드가 필요합니다. 하지만 내가 사용하는 경우 - pedantic 컴파일 실 거예요. 이 문제를 해결할 방법이 있습니까? 그 도중에gcc - 페티 틱은 컴파일이 안되지만, ISO C90은 혼합 된 선언과 코드를 금지합니다. 어떻게 해결할 수 있습니까?

 
gcc -pedantic MP1.c -o hahah 
MP1.c: In function `main': 
MP1.c:65: warning: ISO C90 forbids mixed declarations and code 
MP1.c:686:30: warning: (this will be reported only once per input file) 

라인 65가 사용되는 범위의 상단의

originalAttrs
int originalAttrs = ConsoleInfo.wAttributes; 

답변

4

이동 선언. 이 오류는 ConsoleInfo.wAttributes의 사용과 관련이 없으며 originalAttrs의 선언 위치에 관련됩니다.

printf("hello\n"); /* For example. */ 
int originalAttrs = ConsoleInfo.wAttributes; 

이 해결하려면 :

int originalAttrs; 
printf("hello\n"); /* For example. */ 
originalAttrs = ConsoleInfo.wAttributes; 
0

어느 쪽이는 C90 표준을 준수 있도록 (hmjd's answer에서 알 수 있듯이) 코드를 수정하거나 GCC에게 전체 코드를 보지 않고,이 같은 아마 새로운 버전의 표준을 사용하십시오.

C는 C99 표준으로 시작하는 혼합 된 선언 및 명령문을 허용합니다.

당신이

gcc -std=c99 -pedantic 

또는

gcc -std=c11 -pedantic 

작동한다

를 사용하는 경우.

관련 문제