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
| 12
 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 or 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
)