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