#include<stdio.h>
#include<stdarg.h>
int total(int n,...);
int main(void)
{
printf("%d",total(9,7,8,9,6,7,6,4,6,2));
return 0;
}
int total(int n,...)
{
va_list ap;//一种数据对象,用来存储参数列表中省略号部分。
int i=0;
int total=0;
va_start(ap,n);//n为该函数紧挨着省略号的参数(parmN),va_start将参数列表复制入 ap中。
for(i=0;i<n;i++)
{
total+=va_arg(ap,int);//第n次调用返回省略号中第n个变量,该宏的第二个参数是返回的类型。
}
va_end(ap);//完成清理工作,例如释放内存。
return total;
}
variable-argument(可变参数)