이 코드를 실행 한 후 :주 변수 뒤에 선언 된 변수가 파일 범위를 가질 수 있습니까?
#include <stdio.h>
int x;
int main(void)
{
printf("%d\n",x);
return 0;
}
int x=5;
I 출력이 0
해야 기대했다. 시퀀스 제어 구조로 인해 int x;
프로그램의이 먼저 실행되고 0
이 인쇄되고 마지막으로 int x=5;
이 실행되어야합니다. 그러나 출력은 5
입니다.
에 대해 프로그램이 5
에 액세스하는 방법은 printf
입니까?
이 오류가 발생하는 동안 C2086 : 'int x': redefinition '. 먼저'int x'를'extern int x'로 변경해야합니다. – herohuyongtao
그러나 GCC 4.8.1에서'-Wall -Wextra -pedantic -g3 -std = c99'로 컴파일합니다. – haccks