I have a c++ implementation file (my.cpp) that indirectly includes a header file (b.h) that defines _MAX_DRIVE:
// b.h
#define _MAX_DRIVE 64
Then my.cpp includes stdlib.h which also defines _MAX_DRIVE
// stdlib.h
#define _MAX_DRIVE 3 /* max. length of drive component */
Obviously this produces a macro-redefinition warning:
stdlib.h(185) : warning C4005: '_MAX_DRIVE' : macro redefinition
My questions are:
- How much code is affected by this redefinition, is it just the compilation unit for my.cpp?
- Could the redefined value make its way in to other code if my.cpp is part of a static library?
- If I never even reference _MAX_DRIVE in my.cpp, is is safe to tell the compiler to ignore this macro redefinition warning?
#undef.