일반적으로 함수의 정의를 헤더 파일에 포함시키지 않는 이유가 무엇인가요?
난새
2023.04.01
막 헤더 파일 문법을 공부를 끝마쳤는데, 열혈강의에 일반적으로 선언만 헤더 파일에 포함한다고 되어있더라고요
main.c 함수.c함수.h 이렇게 파일을 3개 만드는 것 보다 그냥main.c 함수.h2개의 파일만 만들고 함수.h에 함수.c의 내용을 넣어버리는게 편할 거 같은데 왜 그렇게 하지 않는 것인가요?
-
Emily
*.h엔 100만년이 흘러도 변하지 않을법한 내용 뿐이지만, *.c의 내용은 당장 1분뒤라도 수정할법한 내용들이 들어가기 때문에 나눠놓는 거죠.
그리고 꼭 *.c가 있으란 법도 없습니다.
*.h+*.a(스태틱링크라이브러리/*.lib) 로 배포되는 경우도 있고 *.h+*.so(쉐어드 오브젝트, 다이나믹링크라이브러리/*.dll) 형태로 배포되는 경우도 있습니다. 이런경우엔 이미 컴파일된 목적파일 혹은 실행파일 그 자체가 헤더와 배포되는 경우라 *.c 자체가