c++可变长参数的函数

#include <stdio.h>
#include <stdarg.h>
#include <assert.h>
#include <iostream>

int tiny_sum(int i,...)
{
	int j=i;
	va_list ap;

	va_start(ap,i);//将ap指向参数i后面的参数,也就是说第一个参数会被跳过。

        while (true)
	{
		j+=va_arg(ap,int);//获取当前参数的值,同时将ap指向下一个参数
		
		if (*ap==-1)
		{
			break;
		}
	}

	va_end(ap);
	return j;
}

int main()
{
	int result=tiny_sum(1,2,3,-1);
	std::cout<<result;
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/sinat_14884161/article/details/52504127