Variable arg function question
Unga
unga888 at yahoo.com
Sun May 4 15:34:31 UTC 2008
--- Roland Smith <rsmith at xs4all.nl> wrote:
> On Sun, May 04, 2008 at 07:02:36AM -0700, Patrick
> Clochesy wrote:
> > What about using a macro (...) in front of the
> function to csll it which
> > passes __VARARGS__, NULL to ensure there is always
> a trailing NULL? I think
> > this would at least work in GCC... Can' test on my
> phone though.
>
> That's a good idea. If one uses __VA_ARGS__ instead
> of __VARARGS__, it
> should work with any C99 compliant compiler,
> including gcc.
>
> The good thing about variadic macros in C99[1] is
> that you don't need a
> first argument.
>
> Roland
>
> [1: http://en.wikipedia.org/wiki/Variadic_macro]
> --
I gave it a try, but I cannot get it to work:
(As per above wikipedia example)
void realdprintf (char const *file, int line, char
const *fmt, ...);
#define dprintf(...) realdprintf(__FILE__, __LINE__,
__VA_ARGS__)
To solve my problem, I must be able to indicate the
end of the arg list, may be by a empty string (""),
but GNU C compiler does not allow to specify anything
after the ... .
How do I specify end of arg list? or is that the way?
Unga
____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
More information about the freebsd-questions
mailing list