인프런 커뮤니티 질문&답변

CJS님의 프로필 이미지
CJS

작성한 질문수

홍정모의 따라하며 배우는 C언어

9.11 헤더 파일 만드는 방법

stdio.h를 include하지 않아도 printf가 실행되는 이유

작성

·

666

1

main.c.pngmy_print_functions.c.pngmy_print_functions.h.png출력.png

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

안녕하세요, 답변 도우미 Soobak 입니다.

곽도훈 님께서 정확하게 자세하게 잘 설명해주신 것 같습니다. 👍

CJS님의 프로필 이미지
CJS

작성한 질문수

질문하기