나는 몇 가지 질문을 겪고 있었고 이것이 stackoverflow 덕분에 이해할 수있는 선언과 정의에 대한 질문을했지만 이것이 하나라는 것을 알았습니다. C의 프로그램 흐름
int main()
{
extern int a;
printf("%d",a);
}
int a=20;
INT 상기 코드
통근에 그래서, 어떤 제어 명령이 발생하지 않는 경우 C 프로그램 실행의 흐름은 위에서 아래로이다 잠시 INT의 A = 20가 정의 선언 하지만이 문장은 main()이 끝난 후에도 프로그램이 끝난 결과입니다. 그렇다면이 코드가 어떤 오류도주지 않는 이유는 무엇입니까? Undefined symbol a?
짧은 대답 : C는 스크립팅 언어가 아니고 컴파일 된 언어입니다. 이해하기 위해서는 C 컴파일러가 생성하는 어셈블리 코드와 링커가 모든 것을 하나로 묶어 실행 파일로 묶을 수 있도록하는 개체 파일 형식을 살펴볼 필요가 있습니다. – user3386109