_MAX_DRIVE を定義するヘッダー ファイル (bh) を間接的にインクルードする C++ 実装ファイル (my.cpp) があります。
// b.h
#define _MAX_DRIVE 64
次に、my.cpp には、_MAX_DRIVE も定義する stdlib.h が含まれます。
// stdlib.h
#define _MAX_DRIVE 3 /* max. length of drive component */
明らかに、これはマクロ再定義の警告を生成します:
stdlib.h(185) : warning C4005: '_MAX_DRIVE' : macro redefinition
私の質問は次のとおりです。
- この再定義によってどの程度のコードが影響を受けますか? my.cpp のコンパイル単位だけですか?
- my.cpp が静的ライブラリの一部である場合、再定義された値が他のコードに侵入する可能性はありますか?
- my.cpp で _MAX_DRIVE を参照したことがない場合、このマクロの再定義の警告を無視するようにコンパイラに指示しても安全ですか?