#include <stdarg.h> void va_start(va_list ap, arg_name);
va_start
initializes processing of a varying-length argument list.
The first argument, ap
, is a work area of type va_list
, which
is used by the expansions of the various <stdarg.h>
macros. The
second argument, arg_name
, is the name of the parameter to the
calling function after which the varying part of the parameter list begins.
This function is one of three macros used to advance through a list of arguments whose number and type are unknown when the function is compiled. The other two macros are
va_arg
va_end
va_list
are defined in the header file
<stdarg.h>
.
The type va_list
defines a buffer that is used as a work area
during argument list processing. A routine that accepts a varying
number of arguments must declare an auto
variable of this type.
In general, a function that uses the <stdarg.h>
facilities has
this form:
#include <stdarg.h> /* The arguments in the list are the ones that must */ /* always be present. */ func(type
arg1,type
arg2) { va_list ap; /* Declare stdarg work area. */ /* Note that first varying-length argument */ /* follows arg2 in the list. */ va_start(ap, arg2); while (more_args_expected) { /* Get next argument value. */ this_arg = va_arg(ap, type); process(this_arg); } va_end(ap); /* finished argument processing */ }
va_start
has no return value.
va_start
are unpredictable if the argument values
are not appropriate.
va_arg
.
va_arg
, va_end
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.