次のようなsum.cという名前のソースファイルがあるとします。
#include "sum.h"
int sum(int x, int y) {
return x+y;
}
メソッドのヘッダーを独自の定義ファイルに含めることのポイントは何ですか?sum関数を呼び出すソースファイルにのみ含めることになっているのではないですか?
次のようなsum.cという名前のソースファイルがあるとします。
#include "sum.h"
int sum(int x, int y) {
return x+y;
}
メソッドのヘッダーを独自の定義ファイルに含めることのポイントは何ですか?sum関数を呼び出すソースファイルにのみ含めることになっているのではないですか?
ヘッダーファイルをインクルードしないと、同じファイルで以前sum
に宣言された他のメソッドでメソッドを使用できなくなります。
このようにして、ヘッダーとソースファイルの定義が異なる場合に発生する可能性のある問題を回避できます。
適切なコンパイラが関数のプロトタイプと実装の違いを強調する必要があるという理由だけで、Cでこれを行うことをお勧めします。言うまでもなく、より複雑な例では、たとえば、関数が必要とする構造体などをヘッダーファイルで宣言することもできます。これを複製したくないので、ヘッダーファイルをインクルードします。
ヘッダーファイルで何を定義するかによって異なります。たとえば、sum.c関数と外部ファイルの両方からアクセスする必要のあるタイプまたはマクロ定義がある場合は、それをどこにでも含める必要があります。
ソースファイルごとに2つのヘッダーファイルが必要な場合もあります。sum.cによってのみ含まれるプライベートなもの。これには、sum.c関数でのみ必要なものが含まれ、その目的はコードの可読性を高めることです。
2番目の「public」ヘッダーファイルには、sum.c関数の呼び出し元が必要とするものが含まれます。これをsum.cファイルに含める必要はありません。
ヘッダーは、実装に役立ついくつかのタイプまたはマクロを定義する場合があります。これらを複製するよりも、ヘッダーから取得する方が適切です。
ソースファイル「sum.c」には、関数sum()の定義があります。関数「sum()」の宣言は、ヘッダーファイル「sum.h」に含まれています。これは、読みやすさを維持するのに役立ちます。