Cプログラムをコンパイルするときは、簡単にするために、最後に特定のヘッダーのソースファイルを含めています。したがって、main.cにutil.hが含まれている場合、util.hには、util.cが使用するすべてのヘッダー、アウトラインタイプ、構造体などが含まれ、最後にutil.cが含まれます。次に、コンパイルするときにgcc main.c -o mainを使用するだけで、残りはすべて処理されます。
私はCコーディング標準を調べて、物事を行うための最良の方法を見つけようとしてきましたが、非常に多くの、そして非常に多くの矛盾する意見があり、私は何を考えるべきかわかりません。多くの場所で、オブジェクトファイルをすべてWebに含めるのではなく、個別にコンパイルすることをお勧めするのはなぜですか?utilはutil.c以外には触れないので、この2つは完全に独立しており、理論的には(私の理論では)問題ありませんが、これはコンピューターサイエンスであり、正しい場合でも人々は間違っているため、おそらく間違っています。ですから、私がすでに間違っているのなら、私はおそらく間違っています。
一部の人々は、ヘッダーファイルはプロトタイプのみである必要があり、ソースファイルはそれを含むものであり、必要なシステムヘッダーであると言います。純粋に美的観点から、ヘッダー(この場合はutil.h)にすべての情報(タイプ、使用されるシステムヘッダー、プロトタイプ)を含め、util.cに関数コードのみ(1つの「#include」を除く)を含めることをお勧めします。一番上にあるutil.h"")。
私が得ているポイントは、これらすべてが機能しているので、方法を選択することは、背景(私)を理解していない人にとっては恣意的に聞こえることだと思います。理由と内容を教えてください。