この質問は、C++ インクルード ガードの命名規則について議論するいくつかの質問の 1 つです。その質問をしている人は、この命名規則について次のように考えています。
#ifndef FOO_H
#define FOO_H
// ...
#endif
は、それ自体を理解すると少し直感的ではなく (どういうFOO_H意味ですか?)、私は同意する傾向があります。
他の人は、より良い衝突回避のためにさらにものを追加する必要がなければ ( のようにPROJECTNAME_FOO_H_SDFFGH69876GF)、FOO_Hその目的がそのコンテキストから明らかであるため、名前は問題ありません (つまり、同じ名前のファイルの先頭にあり、インクルード ガードであることを明確にします)。
FOO_H複数のファイルが含まれないようにすることだけが目的であれば、これを購入することもできFOO_Hますが、ファイルの他の場所に必要な条件はありますか? 条件付きコンパイルは正当な理由になると思います。その場合、次のような名前を付けるとFOO_H_INCLUDEDより明確になります。
これに似た単純な使用法はありますか、それともインクルードガードの転用を避けるべきですか?