在c++中可以使用函数重载来实现变参函数,但是当函数的参数太多的时候,实现起来就不那么容易了。在此呢,我写了如下一段代码,让读者可以很快知道怎样来编写我们的变参函数
代码在ubuntu GNU下编译通过,经过调试可以直接运行
#include <stdio.h>
#include <stdarg.h>
int test(int n1, ...)//计算平方和
{
va_list ap;
int sum = 0, n = n1;
va_start(ap, n1);
while (n > 0)
{
sum += (n * n);
n = va_arg(ap, int);
}
va_end(ap);
return sum;
}
int main(int argc, char *argv[])
{
int sum = test(1, 2, 1, 2, -1);
printf("%d\n",sum);
return 0;
}
//输出结果为10