ヘッダファイルの書き方

ヘッダファイルを書く際には守るべき原則が2つある。
①すべてのヘッダファイルには、二重インクルード防止用のガードをかける。
②すべてのヘッダファイルは、単体でインクルードできるようにすること。
やっと意味がわかりました。
②を実現するためには、#includeをネストする必要があるから、場合によっては二重インクルードが発生する可能性がある。そのため、①をしておく必要がある。
ということですな。
例をあげると、あるヘッダファイルa.hにおいてstrcpy.hが必要な式を書いていたとする。
この場合、②を実現するためにa.hにおいてstrcpy.hをインクルードするように記述すると、a.hを読み込むソースファイル(xxx.cpp)上で下記のようになる場合がある。
#include <strcpy.h>
#include “a.h”

この場合、xxx.cpp上で、strcpy.hが二重インクルードされているわけですが、strcpy.hは二重インクルード防止用の記述が#ifndef、#define、#endifにて記述されているので、エラーが発生しない訳ですな。
まとめると、
コンピュータ上では二重インクルードは無駄極まりないが、人間が認識しやすいようにヘッダファイルを記述すると、二重インクルードが発生する場合がある。だから、ヘッダファイル作成の際にはあらかじめ二重インクルード防止用コードを記述しておかなければならない。
ということです。
あー、スッキリ。
この辺のことは、「ポインタ完全制覇」のP252あたりに載ってるので、忘れたら見直すこと。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です