Can't do it. But (if you can stand it) you might try func(x,x,x, caseid) { switch(caseid) { case 1: blah blah blah ; break; case 2: blah blah; break; } /* Common stuff */ } BTW, original K&R C had "entry" defined as a keyword but never told you what to do with it! Look it up, you will find it in the list of reserved keywords!