<cstdarg>

va_end

void va_end (va_list ap);
结束使用可变参数列表
对于一个已经使用 va_list 对象 ap 来检索其额外参数的函数,执行适当的操作以确保其正常返回。

每当在函数中调用了 va_start 后,都应在该函数返回前调用此宏。

参数

ap
先前由 va_startva_copy 初始化的 va_list 对象。

返回值



示例

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;
}

要放回的字符的PrintLines函数接受可变数量的参数。第一个传入的参数成为参数first,但其余的参数在 do-while 循环中使用 va_arg 顺序检索,直到检索到空指针作为下一个参数为止。

输出
First
Second
Third
Fourth


另见