#define's with variable length argument lists?
Bill Foote
foote at miro.Berkeley.EDU
Fri Nov 30 13:32:36 AEST 1990
I'd like to add some debugging output to programs that use a library
I've written, using this hack:
:
: #defing glorp(a,b,c) _glorp(__FILE__, __LINE__, a, b, c)
:
: <...>
:
: glorp(3.1415926, 0x666, "glorp has intelligent error messages!");
:
This allows glorp to report from where it was called.
That's great, but what if glorp can have a variable-length argument list?
I don't think that #define can handle this... Can it? i.e. can I indicate
somehow that the last argument is optional?
I know that I could do the following:
:
: #define glorp(a) { _set_error(__FILE__, __LINE__); \
: _glorp a }
:
: <...>
:
: glorp((27, "This is ugly!"));
:
but this is inefficient, ugly, and breaks all of my existing applications.
Is there some good way around this? A way that would be invisible to
existing applications (with just an appropriate #define or two in the
right .h file)?
Thanks in advance,
Bill Foote INTERNET: foote at miro.berkeley.edu
- or - foote at cs.berkeley.edu
UUCP: ..!ucbvax!miro!foote at uunet.uu.net
More information about the Comp.lang.c
mailing list