보통 컴파일시에 다른 컴파일 단위에 노출 될 필요가 전혀 없다 이후 main.h
을 가지고 특이한입니다. main()
자체는 링커/시작 코드에 대해 공개해야하지만 헤더 파일은 사용하지 않습니다.
당신은 C 파일 당 하나 개의 헤더 파일 중 하나를 가질 수있다거나, 대부분, C 파일의 관련 그룹에 대한 헤더 파일. 당신이 BTREE 구현을 가지고 당신이 때 코드 변경 재 컴파일을 최소화하기 위해 자신의 C 파일에 등등, 추가, 삭제, 검색 넣고 한 경우 그
한 예입니다.
이 헤더는 API, 사용자에게 라이브러리의보기와 같이 각 C 파일에 대한 별도의 헤더 파일을 가지고이 경우 이해가되지 않습니다. 사용자가 함수를 사용할 수 있도록 6 개의 헤더 파일을 포함하기를 원할 것입니다. 하나의 btree.h
파일과 하나의 btree.lib
파일이 개별 C 파일에서 빌드 된 모든 BTree 오브젝트를 포함합니다.
또 다른 예
은 표준 C 헤더에서 찾을 수 있습니다.우리는
stdio.h
함수에 대해 여러 개의 C 파일이 있는지 여부를 확실하게 알지 못합니다. (그렇게하는 방법은 있지만 유일한 방법은 아닙니다.) 그렇다고해도, 그것들은 API.
stdio_printf.h
,
stdio_fgets.h
등을 포함 할 필요가 없습니다. C 런타임 라이브러리의 표준 I/O 부분에 대해 하나의
stdio.h
이 있습니다.
템플릿을 언급하지 않았으므로 +1이 없습니다. ( – Marcin
나는 C면에 더 집중하고 있었지만 왜 언급하겠습니까? 템플릿, 심지어 C++? 헤더 파일에 어떤 응용 프로그램이 사용되는지 (헤더 파일에 들어갈 수는 있지만 typedef는 사용할 수 있으며 명시 적으로 언급하지는 않습니다.) – paxdiablo