"소스"와 "헤더"파일 (주로 C와 C ++)을 구분하는 언어에서는 헤더 파일에 함수를 문서화하는 것이 좋습니다.
/**
* time_now - return the current time
*
* Example:
* printf("Now is %lu seconds since epoch\n", (long)time_now().tv_sec);
*/
struct timeval time_now(void);
또는 소스 파일에서?
(PostgreSQL에서 인용)
/*
* Convert a UTF-8 character to a Unicode code point.
* This is a one-character version of pg_utf2wchar_with_len.
*
* No error checks here, c must point to a long-enough string.
*/
pg_wchar
utf8_to_unicode(const unsigned char *c)
{
...
구조체, 매크로 및 static inline
함수 와 같은 일부 항목은 헤더에만 정의되어 있습니다. 헤더 파일에 선언 되어 소스 파일에 정의 된 것들에 대해서만 이야기하고 있습니다.
내가 생각할 수있는 몇 가지 주장이있다. 소스 파일에 문서화하는 데 집중하고 있으므로 "Pro-header"인수가 다소 약할 수 있습니다.
프로 헤더 :
- 사용자는 설명서를보기 위해 소스 코드가 필요하지 않습니다.
- 소스를 얻는 것이 불편하거나 불가능할 수도 있습니다.
- 이것은 인터페이스와 구현을 더 멀리 유지합니다.
프로 소스 :
- 헤더를 훨씬 짧게 만들어 독자에게 모듈 전체를 조감 할 수 있습니다.
- 함수의 문서를 구현과 결합하여 함수가 말하는 기능을 쉽게 수행 할 수 있습니다.
대답 할 때 도구와 "현대 IDE"가 할 수있는 일에 근거한 논쟁에주의하십시오. 예 :
- 프로 헤더 : 코드를 접 으면 주석을 숨겨 주석이 달린 헤더를보다 쉽게 탐색 할 수 있습니다.
- Pro-source : cscope 의
Find this global definition
기능은 헤더 파일 ( 선언 이 있는)이 아니라 소스 파일 ( 정의 가있는)로 이동합니다 .
나는 그런 주장을하지 않는다고 말하는 것이 아니라, 모든 사람이 당신이 사용하는 도구에 익숙하지 않다는 것을 명심해야한다.