Manifest constants (#DEFINE) are compiler directives. They are processed by teh compiler. When the compiler is compiling programA it has no idea of what is in ProgramB. You should put your #DEFINE commands in a header file (.h) and then in each program put #INCLUDE MyHeader.h.