If you allow the -D command line option why not simply cc -Dp="main(){...}" ? Now the program is: p -- charlie at vicorp.uu.NET -- Charlie Goldensher