...or just use Python, Ruby, or Lisp directly?
Doing weird things to a C file (while occasionally useful) is just increasing the technical debt of your teammates later.
(though, we do have a closure-ish macro in our codebase that's pretty nifty, so do as I say not as I do etc.)