I have received an elegant (and in retrospect, obvious) solution to this problem from someone whose name I can't remember: #ifdef DEBUG #define debug(x) debug_ x #else #define debug(x) /* null */ #endif You then write function calls: debug((a, b, c)) Dale