va_startva_endva_arg 实现可变长参数

Posted muzixiaofeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了va_startva_endva_arg 实现可变长参数相关的知识,希望对你有一定的参考价值。

/*******************************/
//va_start、va_end、va_arg 实现可变长参数
/*******************************/


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

#define END_NUM -1
void trease_array(int first_num,...)
{
int result1 = 0;
int result2 = 0;
int temp = 0;

va_list ap;

va_start(ap,first_num);

result1 =first_num;

while( (temp = va_arg(ap,int)) != END_NUM)
{
result1 += temp;
}

printf("%d ",result1);

va_end(ap);
}


int main(void)
{
trease_array(1,2,3,4,5,END_NUM);
return 0;
}























以上是关于va_startva_endva_arg 实现可变长参数的主要内容,如果未能解决你的问题,请参考以下文章

C语言中如何实现可变参函数

可变参数模板类:是不是可以为每个可变参数模板参数实现一个唯一的成员函数?

C 实现可变参数

保留插入顺序的不可变 Scala Map 实现

spark UDF 怎么实现参数数量可变,不传参时候,有默认值。见下图?

Java实现长度可变数组