// #pragma push_macro/pop_macro #define INCLUDE_A #pragma push_macro("INCLUDE_A") #undef INCLUDE_A #pragma pop_macro("INCLUDE_A") #ifdef INCLUDE_A #include "a.h" #endif // #pragma push_macro/pop_macro with argument macro expansion #define INCLUDE_B #define MACRO_NAME "INCLUDE_B" #pragma push_macro(MACRO_NAME) #undef INCLUDE_B #pragma pop_macro(MACRO_NAME) #ifdef INCLUDE_B #include "b.h" #endif // #pragma include_alias (MS specific) // When compiling without MS Extensions, the pragma is not recognized, // and the file c_alias.h is included instead of c.h #pragma include_alias("c_alias.h", "c.h") #include "c_alias.h"