不确定参数量的函数 va_start

type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
void va_start( va_list arg_ptr ); // (UNIX version)
void va_start( va_list arg_ptr, prev_param ); // (ANSI version)

#include <stdio.h>
#include <string.h>
#include <stdarg.h>

void MyPrint(char* format, ...)
{
	char buf[255];
	memset(buf, 0, sizeof(buf));
	va_list param_list;
	va_start(param_list, format);
	vsprintf(buf, format, param_list);
	va_end(param_list);

	printf("%s\n", buf);
}

int GetSum(int number, ...)
{
	int sum = 0;
	va_list ap;
	va_start(ap, number);
	while (number--)
	{
		int tmp = va_arg(ap, int);
		sum += tmp;
	}
	va_end(ap);
	return sum;
}

void main()
{
	MyPrint("%d, %f, %s", 1, 2.0, "3");

	int sum_int = GetSum(4, 2, 3, 4, 5);
	printf("sum_int %d\n", sum_int);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值