작성
·
692
1
main.c에서도, my_print_functions.h에서도
stdio.h를 include하지않았는데
왜 printf("Hello!!hi!!bye!!")가 출력되는걸까요??
감사합니다.
답변 2
2
my_print_functions.c에서 stdio.h를 인클루드 했기 때문이죠. 제가 아는 선에서 거칠게 설명하면 다음과 같습니다.
컴파일이란 작성한 소스파일을 기계어로 구성된 하나의 실행파일(.exe)로 만드는 과정입니다. 컴파일러는 구현을 담은 각각의 소스파일(.c, .cpp)을 오브젝트 파일(.obj)로 번역하고, 컴파일러(보다 정확하게 링커)는 이들을 모아서 하나의 실행 파일로 통합(링킹)합니다.
따라서, 실행 파일을 구성하는 어떤 소스 중 하나라도 특정 라이브러리를 include하게 되면 최종적으로 생성되는 실행 파일에는 해당 라이브러리의 구현이 들어가게 됩니다. 즉 main에서 include하지 않아도 접근이 가능하게 되는 것이죠.
0