Disappearing function call
mcg at omepd.UUCP
mcg at omepd.UUCP
Mon Oct 13 08:22:57 AEST 1986
You guys are all thinking too hard. Even the venerable Chris Torek has
proposed a solution more complex than needed. On any compiler likely to
be used for production code, the optimizer will generate no code
whatsoever for the following fragment:
#define DEBUG 0 /* set to 1 to turn debugging on */
...
if (DEBUG) debug(...);
Similarly, in the case of '#define DEBUG 1', the unneccesary test will
be elided.
In the idiom of the original posting, the example is:
#define debug if(DEBUG) debug
debug(x,y,z);
Though care must be taken in using this form in un-braced if statements
that have else clauses.
The preprocessor solutions have the intoxicating air of complexity about
them, but, in my experience, this solution proves easiest and most
effective. Why look for trouble? Trouble will find you.
S. McGeady
More information about the Comp.lang.c
mailing list