• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

23.08.06 22:58 작성 조회수 443

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

곽도훈님의 프로필

곽도훈

2023.08.06

my_print_functions.c에서 stdio.h를 인클루드 했기 때문이죠. 제가 아는 선에서 거칠게 설명하면 다음과 같습니다.

컴파일이란 작성한 소스파일을 기계어로 구성된 하나의 실행파일(.exe)로 만드는 과정입니다. 컴파일러는 구현을 담은 각각의 소스파일(.c, .cpp)을 오브젝트 파일(.obj)로 번역하고, 컴파일러(보다 정확하게 링커)는 이들을 모아서 하나의 실행 파일로 통합(링킹)합니다.

따라서, 실행 파일을 구성하는 어떤 소스 중 하나라도 특정 라이브러리를 include하게 되면 최종적으로 생성되는 실행 파일에는 해당 라이브러리의 구현이 들어가게 됩니다. 즉 main에서 include하지 않아도 접근이 가능하게 되는 것이죠.

0

Soobak님의 프로필

Soobak

2023.08.07

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

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