Just out of interest, would something like this do the job? #pragma abandon _FILENAME_H #ifndef _FILENAME_H #define _FILENAME_H ... #endif /* _FILENAME_H */ ...where "#pragma abandon <name>" means "immediately terminate processing this file if <name> is #defined"?