あなた自身が言ったように、「ソフトウェア全体」を1つのソースファイルに入れることはできないためです。
プログラムが非常に小さい場合は、はい、すべてを1つの.cファイルに入れるだけです。あなたのプログラムが大きくなるにつれて、関連する関数を異なる.cファイルにまとめて整理することが役に立ちます。さらに、.hファイルでは、であると宣言された宣言を他の.cファイルのものによって使用されるように制限することができます()。 .cファイルに外部からアクセス可能なものが含まれていない場合、ヘッダーは必要ありません。
たとえば、.cが関数foo()とfooHelper()を持っていてfoo()以外の誰もfooHelper()を直接呼び出すことができない場合、foo()とfooHelper()をfoo.cに入れ、 foo()の宣言をfoo.hに入れるだけで、fooHelper()を静的に宣言すると、プログラムの他の部分がfoo()にしかアクセスしないようにし、fooHelper()を知らないと気にする必要はありません。カプセル化のオブジェクト指向でない形式の種類。
最後に、makeエンジンは最後のビルド以降に変更されたファイルのみを再構築できるほどスマートなので、複数の.cファイル(.hファイルを使用して共有するものを共有する)に分割するとビルドのスピードアップに役立ちます。
私がする必要がある宣言を持っている場合複数のファイルで共有され、論理的に1つの.cファイルに対応していませんか?たとえば、ほとんどのファイルで使用されるいくつかの#defineがあります。それらのすべてを使ってヘッダファイルを作成するほうがいいですか? 1つの.cファイルに関連付けられていない中立なものはありますか? –
はい。アイデアは、各ヘッダーには互いに関連する宣言のグループが含まれているということです。ほとんどの場合、それぞれの.cファイルに対応する.hがありますが、余分な.hファイルを追加することもできます(グローバル定数やenumを定義するなど)。最終的には、ヘッダーを使用してコードを整理する方法を担当しています。 –
@JasonWilliams:または、余分な.cファイル、適切なもの。 – Deduplicator