4

次のようなsum.cという名前のソースファイルがあるとします。

#include "sum.h"

int sum(int x, int y) {
    return x+y;
}

メソッドのヘッダーを独自の定義ファイルに含めることのポイントは何ですか?sum関数を呼び出すソースファイルにのみ含めることになっているのではないですか?

4

6 に答える 6

10

ヘッダーファイルをインクルードしないと、同じファイルで以前sumに宣言された他のメソッドでメソッドを使用できなくなります。

于 2009-12-10T08:53:36.263 に答える
10

このようにして、ヘッダーとソースファイルの定義が異なる場合に発生する可能性のある問題を回避できます。

于 2009-12-10T08:54:04.033 に答える
5

適切なコンパイラが関数のプロトタイプと実装の違いを強調する必要があるという理由だけで、Cでこれを行うことをお勧めします。言うまでもなく、より複雑な例では、たとえば、関数が必要とする構造体などをヘッダーファイルで宣言することもできます。これを複製したくないので、ヘッダーファイルをインクルードします。

于 2009-12-10T08:54:21.230 に答える
1

ヘッダーファイルで何を定義するかによって異なります。たとえば、sum.c関数と外部ファイルの両方からアクセスする必要のあるタイプまたはマクロ定義がある場合は、それをどこにでも含める必要があります。

ソースファイルごとに2つのヘッダーファイルが必要な場合もあります。sum.cによってのみ含まれるプライベートなもの。これには、sum.c関数でのみ必要なものが含まれ、その目的はコードの可読性を高めることです。

2番目の「public」ヘッダーファイルには、sum.c関数の呼び出し元が必要とするものが含まれます。これをsum.cファイルに含める必要はありません。

于 2009-12-10T08:56:06.680 に答える
0

ヘッダーは、実装に役立ついくつかのタイプまたはマクロを定義する場合があります。これらを複製するよりも、ヘッダーから取得する方が適切です。

于 2009-12-10T08:54:22.240 に答える
0

ソースファイル「sum.c」には、関数sum()の定義があります。関数「sum()」の宣言は、ヘッダーファイル「sum.h」に含まれています。これは、読みやすさを維持するのに役立ちます。

于 2009-12-10T12:02:33.980 に答える