2
모든 변수를 함수의 시작 부분에 선언해야한다는 책에서 C 프로그래밍을 읽었습니다. 다음 코드를 시도했지만 오류가 발생하지 않았습니다. 나는 mingw와 codeblocks를 사용하고있다.C mingw의 변수 선언
#include <stdio.h>
int main()
{
int i=10;
printf("%d\n",i);
int j=20;
printf("%d\n",j);
return 0;
}
내가 어떤 컴파일러 설정 또는 책에 주어진 표준과 호환되도록 뭔가를 변경해야합니까 다음과 같이 코드는?
-std = c89 컴파일러 옵션을 사용하고 있습니다. 아래의 컴파일 메시지를 참조하십시오 :
-------------- Clean: Debug in HelloWorld (compiler: GNU GCC Compiler)---------------
Cleaned "HelloWorld - Debug"
-------------- Build: Debug in HelloWorld (compiler: GNU GCC Compiler)---------------
mingw32-gcc.exe -Wall -std=c89 -g -c D:\MyCodeBlocksProjects\HelloWorld\main.c -o obj\Debug\main.o
mingw32-g++.exe -o bin\Debug\HelloWorld.exe obj\Debug\main.o
Output size is 68.53 KB
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings (0 minutes, 0 seconds)
은 추가'-std = c89' 당신의 GCC 명령 줄에 C89 모드에서 컴파일러를 넣어 것입니다 :
내가 블록의 시작 부분에서 무슨 뜻인지 설명하기 위해이 법률 C89 구문이다 . –
@JonathonReinhart -std = c89 옵션을 시도했습니다. 위의 컴파일러 메시지를 참조하십시오. 아직도 아무 것도 불평하지 않습니다. 더 이상 설정해야합니까? – abhithakur88
변수가 선언 된 곳이 정말로 중요한 것은 아니기 때문에이 경고는 ['-pedantic'] (http : // gcc.)를 사용하는 경우에만 생성된다는 사실을 알게 된 것은 그리 놀랍지 않습니다. gnu.org/onlinedocs/gcc/Warning-Options.html), [Yu Hao는 아래에 언급되어 있습니다] (http://stackoverflow.com/a/19750011/119527). –