3

ヘッダーファイル「foo.h」には、次のステートメントがあります。

int foo;

ソースファイル「ac」と「bc」には、ヘッダファイルがインクルードされています。

#include "foo.h"

2 つの場所に 2 つの独立した foo がありますか、それとも「ac」と「bc」で共有される foo は 1 つだけですか? これは、他の人からの共有コードで発生することがわかります。ご理解いただける方、よろしくお願いします。

4

2 に答える 2

2

外部オブジェクトを複数回定義すると、エラーが発生します。

extern int foo;ヘッダー ファイルとint foo;1 つのファイルだけで使用し.cます。

ファイル スコープのextern指定子 (初期化子がない場合) は、定義せずに宣言します。

于 2012-09-18T19:10:22.693 に答える
0

プリプロセッサは、#include "foo.h"をの内容に置き換えるだけですfoo.h

それは完全に同等でa.cありb.c、両方を含んでいますint foo;

于 2012-09-18T19:13:27.160 に答える