in reply to C code pre-processor

Why not just use the C preprocessor? If you have C code, you should probably have one lying around on your system.

EDIT: I missed the part about not wanting to expand macros in code. Try something like this:

$ perl -pe 'y/A-Za-z/N-ZA-Mn-za-m/ unless /^\s*#/' < INPUT | cpp - | \ perl -pe 'y/A-Za-z/N-ZA-Mn-za-m/ unless /^\s*#/ > OUTPUT'
That should hide the macros in code from CPP unless you choose really weird names.