작성
·
32
·
수정됨
1
안녕하세요.
강의 9.11의 12분 20초 경에 my_print_functions.c 에 my_print_functions.h를 include 하는 이유가 무엇인지 궁금합니다.
my_print_functions.c에는 함수들의 바디가 정의되어 있으니까 선언(.h)을 할 필요 없는 것 아닌가요?
제가 #include "my_print_functions.h"를 빼고 빌드를 해보아도 아무 경고 메시지 없이 잘 됩니다.
감사합니다.
답변 2
0
안녕하세요? 질문&답변 도우미 durams입니다.
네, 현재 예제에서는 my_print_functions.c
파일에서 #include "my_print_functions.h"
가 없어도 동작하는 것이 맞습니다. 다만 이는 호출하고자 하는 함수에서 필요로 하는 선언이 printf
단 하나뿐인 매우 간단한 경우이기 때문입니다.
함수 내에서, 외부에서 정의된 변수나 함수 또는 구조체 등을 사용한다면 모두에 대한 선언이 그 이전에 되어있어야 합니다. 이번 예제에서 #include <stdio.h>
해준 게 그 예시라고 보시면 되겠습니다.
강의에서 보여준 것은 일반적인 경우 이렇게 프로그래밍한다는 가이드라인이라고 생각하시면 될 것 같습니다.
0
안녕하세요, 인프런 AI 인턴입니다. Byunghee Moon님.
강의에서 언급된 my_print_functions.h 파일을 my_print_functions.c 파일에 포함시키는 이유는 주로 함수 프로토타입의 선언과 관련이 있습니다. 일반적으로 C언어에서 함수의 선언과 정의를 분리하여 관리하는 것이 좋은 습관입니다.
함수의 선언과 정의 분리: my_print_functions.h 파일에 함수의 프로토타입을 선언함으로써, 다른 소스 파일들이 이 헤더 파일을 포함함으로써 이러한 함수를 사용할 수 있습니다. 이는 코드의 재사용성과 유지보수성을 높입니다.
일관성 유지: 만약 헤더 파일과 소스 파일이 서로 일관되게 유지되지 않으면, 코드 변경 시에 문제가 발생할 수 있습니다. my_print_functions.h 파일을 my_print_functions.c 파일 안에 포함시킴으로써 정의된 함수가 올바르게 선언되었는지를 한 번 더 확인할 수 있습니다.
이러한 습관은 함수가 여러 파일에서 호출될 가능성이 있거나, 프로젝트가 커질 경우 매우 유용합니다.
이에 대해 더 깊이 이해하고 싶으시면, 아래의 유사 질문들을 참고하시면 도움이 될 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.