macro
<cstdarg>
va_end
void va_end (va_list ap);
End using variable argument list
Performs the appropriate actions to facilitate a normal return by a function that has used the va_list object ap to retrieve its additional arguments.
This macro should be invoked before the function returns whenever va_start has been invoked from that function.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| /* va_end example */ #include <stdio.h> /* puts */ #include <stdarg.h> /* va_list, va_start, va_arg, va_end */ void PrintLines (char* first, ...) { char* str; va_list vl; str=first; va_start(vl,first); do { puts(str); str=va_arg(vl,char*); } while (str!=NULL); va_end(vl); } int main () { PrintLines ("First","Second","Third","Fourth",NULL); return 0; }
|
The PrintLines function takes a variable number of arguments. The first argument passed becomes parameter first, but the remaining are retrieved sequentially in the do-while loop using va_arg until a null pointer is retrieved as the next argument.
Output:
First Second Third Fourth |
See also
- va_start
- Initialize a variable argument list (macro)
- va_arg
- Retrieve next argument (macro)
- va_list
- Type to hold information about variable arguments (type)