#include <stdio.h>
#include <stdarg.h>
//求narg个整数的和
int sum(int narg, ...)
{
va_list ap; //首先定义一个va_list类型的变量
va_start(ap, narg); //va_start 的第一个参数为va_list变量,第二个参数为函数的最后一个固定参数
int s = 0, i, tmp;
for(i = 0; i < narg; i++)
{
tmp = va_arg(ap, int); // 每次调用迭代出一个可变参数值, 该函数的第二个参数要求指明变量的类型
s += tmp;
}
va_end(ap); //用va_end结束迭代, ap is undefined
return s;
}
int main(void)
{
printf("1+2 = %d
", sum(2, 1,2));
printf("1+...+5 = %d
", sum(5, 1,2,3,4,5));
printf("1+...+10 = %d
", sum(10, 1,2,3,4,5,6,7,8,9,10));
return 0;
}
执行结果:
1+2 = 3
1+...+5 = 15
1+...+10 = 55
//将buffer缓存区加入数据
转至于《https://blog.csdn.net/zhang197093/article/details/76400380》