Faking out CPP (was: Variable length arg lists for macros)
    Chris Quenelle 
    cquenel at pyrglass
       
    Thu Sep  8 03:00:04 AEST 1988
    
    
  
One common thread to this discussion is "ways to 'define out'
a function call with a variable number of parameters".
for instance, you have :
	DEBUG_fprintf(stderr,"error number %d\n", errnumber);
and you would like a define that "disables" it, by making compile
to nothing when a certain define is set.
I have tried 
#define DEBUG_fprintf	1 ? 0 :
and it is guaranteed not to _call_ DEBUG_fprintf, but it MAY generate
code for it.  Actually any decent compiler should throw it away entirely.
The effect is as if you had done something like this:
	statement;
	5;
	other-statement;
	or
	statement;
	1 ? 5 : 7;
	other-statement;
both perfectly legal C.
"works for me."
--chris
-----------------------------|@---@    -=----|---------------------------------
|Chris Quenelle (The Lab Rat)|\. ./ + --==---|   on hold                      |
|ucbvax!voder!polyslo!cquenel| \ /   ---===--|                                |
-----------------------------|==o== ----====-|---------------------------------
    
    
More information about the Comp.std.c
mailing list