인프런 커뮤니티 질문&답변
stdio.h를 include하지 않아도 printf가 실행되는 이유
작성
·
895
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





