「ソース」ファイルと「ヘッダー」ファイル(主にCとC ++)を区別する言語では、ヘッダーファイルに関数を文書化する方が適切です。
(CCANから盗用)
/**
* 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
関数など、ヘッダーのみで定義されているものがあることに注意してください。私は、ヘッダーファイルで宣言され、ソースファイルで定義されているものについてのみ話している。
ここに私が考えることができるいくつかの議論があります。私はソースファイルに文書化することに傾いているので、「プロヘッダー」引数はやや弱いかもしれません。
プロヘッダー:
- ユーザーは、ドキュメントを見るためにソースコードを必要としません。
- ソースを取得するのは不便であるか、不可能でさえあります。
- これにより、インターフェースと実装がさらに分離されます。
プロソース:
- ヘッダーが大幅に短くなり、読者にモジュール全体の鳥瞰図が提供されます。
- 関数のドキュメンテーションとその実装を組み合わせて、関数が言っていることを関数が実行していることを見やすくします。
答えるときは、ツールと「最新のIDE」ができることに基づいて議論に注意してください。例:
- プロヘッダー:コードを折りたたむと、コメントを非表示にすることでコメント付きヘッダーをよりナビゲートしやすくすることができます。
- プロソース:cscopeの
Find this global definition
機能は、ヘッダーファイル(宣言がある)ではなく、ソースファイル(定義がある)に移動します。
私はそのような議論をしないと言っているわけではありませんが、誰もがあなたが使用しているツールと同じくらい快適ではないことを覚えておいてください。