Listing 10

 /*  This macro could be moved into your personal header file */

 #define  MH_CONCATTOKEN( name1, name2) name 1 ## name2

 /*  Differentiate between Turbo and Quick C */

 #if defined( _TURBOC_)

         /*  Turbo C version */

         #define  MH_PRG        prog1

         #define  MH_INCFILE_A  MH_CONCATTOKEN( MH_PRG, _a )
         #define  MH_INCFILE_B  MH_CONCATTOKEN( MH_PRG, _b )

#elif defined( _QC )

         /*  Quick C version */

         #define  MH_INCFILE_A  MH_CONCATTOKEN( prog1, _a )
         #define  MH_INCFILE_B  MH_CONCATTOKEN( prog1, _b )

#else
         #error Possibly unsupported compiler encounter
#endif

#define   MH_INCLUDE_A   <##MH_INCFILE_A##.h>
#define   MH_INCLUDE_B   <##MH_INCFILE_B##.h>

/*  Include the files */

#include   MH_INCLUDE_A
#include   MH_INCLUDE_B