C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 53 を表示中)
■29550 / )  Re[1]: 多重インクルード防止について
□投稿者/ .SHO (366回)-(2008/12/10(Wed) 16:18:11)
No29549 (Cの疑問 さん) に返信

> [質問@]
> その後、B.c は既に _INC_HEADER_ が #define されていることを知っているのでしょうか?

知りません。

> ヘッダ内の定義が、両ソースにて展開されてしまうのではないか?と思います。

両ソースに展開されても問題ありません。
それよりも、関数のプロトタイプなどは、両ソースに展開されなければ意味がありません。

> [質問A]
> また、#define されたことを知っているとしたならば

知らないのでこの質問は除外。

> [質問B]
> 定義が複数箇所に散らばっていることでコンパイルエラーにはならない?

a.c と b.c はコンパイル時には無関係です。

> 定義の重複はリンク時に判定される?

具体的にどのようなケースで問題になる(と思われる)のでしょう?

> [質問C]
> どのような場合に定義の重複エラーと見なされるのでしょうか?

a.c (b.c) で、2回 include した時です。

> そもそも、私の検証内容自体に問題があるために、
> 上記の疑問が出てきているだけなのでしょうか?

a.c と b.c は、コンパイル時には無関係というのを理解してください。
返信 編集キー/


管理者用

- Child Tree -