macro

va_end

<cstdarg>
void va_end ( va_list ap );
End using variable argument list
Performs the appropiate 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 executed before the function returns whenever va_start has been previously used in that function.

Parameters

ap
va_list object previously initialized by va_start in the same function.

Return Value

none

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_arg example */
#include <stdio.h>
#include <stdarg.h>

void PrintLines ( char* first, ...)
{
  char* str;
  va_list vl;

  str=first;

  va_start(vl,first);

  do {
    printf ("%s\n",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.

See also