A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.com/reference/cstdarg/va_end/ below:

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.



Parameters
ap
va_list object previously initialized by va_start or va_copy.

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_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)

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4