va_end()函数用于停止使用可变参数。
va_end()函数 语法
void va_end(va_list ap);
参数ap为参数自身。
va_end()函数没有返回值。
va_end()函数 示例
本示例使用va_end函数作为可变参数arg_ptr的结束标志,执行后的arg_ptr变为无效值。其具体代码如下所示:
#include<stdio.h>
#include<stdarg.h>
void va_end_fun(int i,……)
{
va_list arg_ptr;
char*s=NULL;
va_start(arg_ptr,i);/*以固定参数的地址为起点确定变参的内存起始地址*/
s=va_arg(arg_ptr,char*);/*得到下一个可变参数的值*/
va_end(arg_ptr);
printf("%d%s ",i,s);/*输出各参数的值*/
return;
}
int main(int argc,char argv[])
{
va_end_fun(100,-1);/*以两个参数调用*/
va_end_fun(100,200,-1);/*以三个参数调用*/
}
运行结果如图所示。