0

関数 (ここでは外部のみを考慮) int foo(int a, char *b) があるとします。通常、関数が何をするか、各パラメーターと戻り値が何をするかなどを文書化したヘッダーがあります。おそらくdoxygen形式でもあります。私の習慣は、インターフェイスが定義されている場所であり、リーダーがその場所にすべての情報を持っている必要があるため、そのようなヘッダーは .h ファイルに入れる必要があるということです。しかし、多くの人は、実際の実装が行われる C ファイルにそのようなヘッダーを保持しています。Linuxカーネルコードでもこれを見ました。それで、私は間違っていましたか?どちらがいいですか?

4

3 に答える 3

3

ヘッダー ファイルはどのような方法でも使用できますが、主に外部リンクを有効にするためのメカニズムです。

外部で使用するための API を設計し、この API を使用するために必要なすべて (定数、型、プロトタイプ) をヘッダー ファイルに入れます。

実装の一部であり、外部ユーザーが見る必要のない他のすべてのものは、ソース ファイル (使用法が 1 つのファイルにローカライズされている場合)、または複数の間で共有できるプライベート ヘッダーに入れることができます。ファイル。後者は、外部リンクを有効にするヘッダー ファイルの別の例ですが、内部消費用です。

于 2013-08-20T02:42:12.813 に答える
1

この質問に対する答えは、主に「依存する」です。

何かによります?誰がドキュメントを読んでいて、どのようにドキュメントにアクセスしているか。

あなたがプログラムを開発しているのであればあなたのプログラムについて知りたい人は誰でもソースコードにアクセスしてそれについて読むことができるので、ドキュメントを実装とインラインにすることはおそらく問題ありません。あなたの対象読者はおそらくプログラム自体に取り組んでいる開発者であるため、彼らが取り組んでいるコードの大部分とともに C ファイルにドキュメンテーションを含めることは適切なアプローチです。

ライブラリを開発している場合は、対象読者が変わります (または、対象読者が 2 人いる場合もあります)。プライベート実装の詳細に関連するため、より詳細なドキュメントを利用できる開発者がまだいます。また、使用しているインターフェイスだけを気にするライブラリのユーザーもいます。コード ブラウジングの観点からは、通常はヘッダーにしかアクセスできません。

于 2013-08-20T02:35:44.633 に答える
0

.h ファイルがある場合は、好みで .h ファイルに入れます。.c ファイルしかない場合は、関数が定義されたときにドキュメントを作成します。.c ファイルしかない場合は、おそらくまだコーディング中であり、コードを変更する場合はドキュメントを変更したいからです。

ドキュメントと宣言は、完成した c プロジェクトの別のファイルにまとめられていると思います。コード内のドキュメントはコードを分割し、冗長になる可能性があります。

どこかに貢献する場合は、確立された慣習に従います。

于 2013-08-20T02:44:05.150 に答える