c#,자바 써보니까 다른 파일 참조할때 굳이 헤더 없어도 잘되던데 얘넨 뭐하러 껍데기만 있는 헤더파일이라는걸 굳이 만들어 놓는거임? 헤더없이 그냥 구현체만 있는 파일로 참조되게 표준 바꿔버리면 안됨?
[%] c/cpp에서 헤더가 존재하는 이유가 뭐임?
익명(211.36)
2020-03-30 09:21
추천 1
댓글 9
다른 게시글
-
형들 이문제좀 가르쳐주세요ㅠㅠ [6][%] ㅣㄷ짓(39.7) | 20.03.30추천 0
-
파이똥 하기 싫은데 자꾸 해야해서 똥독 오름 [4][%] 프갤럼(121.165) | 20.03.30추천 0
-
맥에 리슼오 들어가면 어캐되냐 [10][%] 익명(211.36) | 20.03.30추천 1
-
오늘 div 태그 만지다가 집어 던졌어요. [6][%] 뉴비(223.62) | 20.03.30추천 0
-
나도 땔감이 되고 싶다 [6][⚠애니짤] 익명(194.5) | 20.03.29추천 0
-
코로나때문에 프갤콘도 못열고 시-불쟝 [6][%] op(203.128) | 20.03.29추천 0
-
롤 클라/서버 코드는 얼마나 개판일지 궁금하다 [7][%] 익명(221.153) | 20.03.29추천 0
-
근데 ARM 랩탑은 왜 내놓는거냐 [3][%] 익명(221.153) | 20.03.29추천 0
-
알바 빡빡하네...[⚠애니짤] 익명(106.102) | 20.03.29추천 0
-
다됐다시발 [2][%] 익명(39.7) | 20.03.29추천 0
해당 댓글은 삭제되었습니다.
ㅇㅇ 근데 분리 가능하게 만든 이유는 머임? 엄밀한 표준은 분리해야 하잖아
헤더파일에서 구현체들 다 템플릿으로 구현하거나 (implicitly inlined) 명시적으로 인라인 해버리면 굳이 헤더소스 분리 안해도 됨. 요즘 나오는 Header-only-library들이 이런식으로 구현되있음. 그럼에도 굳이 분리 하는 이유는 #include하는 TU마다 헤더 전체를 복사해야되기때문에 헤더에 definition까지 전부 포함되있으면 컴파일속도 느려지고, 헤더파일에서 별거 안바꿔도 나머지 의존하는 TU들마저 재컴파일해야되는둥 골치아파지니까 분리한다고 보면 됨.
그냥 C부터 내려온 레거시임
그럼 c는 왜 글케 만듬? 없어도 될걸 굳이 있게만든 배경이 궁금함
나는 자바의 인터페이스처럼 쓰는건줄 알았는데
정의된 매크로를 쓰거나 함수를 찾거나 할 때 필요하니까 선언과 구현을 분리한 거임. 요즘 언어는 개발자가 따로 헤더를 작성하진 않지만 어쨌든 컴파일러 입장에서 비슷한 물건은 가지고 있음.
자바나 C#으로 치면 public과 private 구분하는 거랑 비슷하다.
윗댓처럼 인터페이스랑 비슷한 목적이기도 함.