강의 9.11의 12분 20초 경에 my_print_functions.h를 include 하는 이유?
63
작성한 질문수 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 파일 안에 포함시킴으로써 정의된 함수가 올바르게 선언되었는지를 한 번 더 확인할 수 있습니다.
이러한 습관은 함수가 여러 파일에서 호출될 가능성이 있거나, 프로젝트가 커질 경우 매우 유용합니다.
이에 대해 더 깊이 이해하고 싶으시면, 아래의 유사 질문들을 참고하시면 도움이 될 것입니다:
- 질문: iostream을 include를 했는데 printf와 scanf함수가 됩니다: 헤더파일의 활용 방법과 관련된 질문입니다.
- 질문: 사용자 지정함수와 라이브러리 함수의 차이?: 함수 선언과 정의의 차이 및 관련된 개념을 이해하는 데 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
Export template 안됨
1
50
2
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
73
3
main 함수에서 왜 int만 선언이 되는걸까요
1
66
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
62
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
65
1
프로토타입과 함수간의 인자 불일치
1
81
2
12.12 헤더 관련 질문
1
66
2
Visual Studio Community 2026 사용 문의
1
154
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
65
2
getchar(), putchar()
1
98
3
강의자리ㅛ
1
87
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
121
2
소스파일안에 여러 파일
1
81
2
F5와 F7의 차이
1
85
2
c = TWO * (a+b); 에서 a와 b는?
1
64
2
; 세미콜론을 붙이는 기준에 문의
1
74
1
Step over 기능 문의
1
58
2
2.6 강의 따옴표 출력 규칙 문의
1
82
2
int main 함수 관련 오류 문의
1
72
2
13.4 words[0]
0
66
2
11.7 함수를 구현해 봤습니다.
1
66
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
70
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
59
2
11.6 fit_str함수를 구현해 봤습니다.
1
57
2





