파일 분할 중에 궁금한 게 생겼습니다.
아주 간단한 코드이긴 한데
main.c 파일이고
one.h 파일 일 때
헤더파일을 포함시켜도
포함 안 해도 돌아갑니다
이게 헤더파일을 따로 include 안해도 링킹 과정에서 컴파일러가 헤더파일에 함수 원형을 보고 -> 함수 구현을 찾기 때문에 되는 거 같습니다.
인터넷에서는 거의 다 .c파일에 함수원형이 있는 헤더파일을 포함하더라고요.
분할 파일 수가 많아지고 소스가 커지면 헤더파일을 인클루드 하는 게 맞는 건가요?
헤더가 필요한 이유 2가지를 생각해봤는데 1. one.c 에서 함수 정의 순서를 따지지 않아도 됨 2. 만약 헤더와 소스 사이에 괴리가 있을 경우 상대적으로 불친절한 링커 에러 대신 컴파일 에러로 확인 가능 이렇게 두개가 떠오르네요 이게 정답일지는 모름 ㅎ
변경 파일 생기면 그것만 컴파일해서 다시 링킹만 하면 되는데 여러개로 분할 안해놓으면 일부분만 변경되도 전부 다시 컴파일함, 소스보기도 양이 많으면 분할해 놓는게 보기 좋고 - dc App
분할 하는 이유 때문이 아니라 분할 했을 때 구현파일에 헤더파일을 인클루드를 안 해도 되는지에 대한 질문이었어요
안 하면 struct 내용물을 못 가져와서 컴파일 자체가 안될건데 - dc App
아니면 struct 내용만 .c에 넣어서 private member 구현같은게 되긴 함 - dc App
Cpp에선 안 됨 - dc App
이미지 저렇게 만드는거 툴이 있음?