| The GNU C Library | www.imodulo.com · 2003-04-05 | ||
| [ Software | Documentation | Contact ] |
Before ISO C, programmers used a slightly different facility for writing variadic functions. The GNU C compiler still supports it; currently, it is more portable than the ISO C facility, since support for ISO C is still not universal. The header file which defines the old-fashioned variadic facility is called varargs.h.
Using varargs.h is almost the same as using stdarg.h. There is no difference in how you call a variadic function; see Calling Variadics. The only difference is in how you define them. First of all, you must use old-style non-prototype syntax, like this:
tree
build (va_alist)
va_dcl
{
Secondly, you must give va_start only one argument, like this:
va_list p; va_start (p);
These are the special macros used for defining old-style variadic functions:
This macro stands for the argument name list required in a variadic function.
This macro declares the implicit argument or arguments for a variadic function.
This macro, as defined in varargs.h, initializes the argument pointer variable ap to point to the first argument of the current function.
The other argument macros, va_arg and va_end, are the same in varargs.h as in stdarg.h; see Argument Macros, for details.
It does not work to include both varargs.h and stdarg.h in the same compilation; they define va_start in conflicting ways.
| © Free Software Foundation, Inc. |