C语言怎么实现函数不定参数

2025-01-01 22:46:10
推荐回答(2个)
回答1:

C语言中定义了va_list, va_start( ), va_arg( ), va_end( ) 这样一组宏来处理可变参数问题。

可以参考printf的声明,创建自己的实现函数。示例:

#include
#include
void va_fun(int start,...)
{
 va_list arg_ptr;
 int nArgValue = start;
 int nArgCount = 1;
 va_start(arg_ptr,start);
 while(nArgValue != -1)
 {
 printf("arg %d is:%d/n",nArgCount,nArgValue);
 nArgValue=va_arg(arg_ptr,int);
 ++nArgCount; 
 }
 return; 
}
main()
{
 va_fun(5,1,7,-1);
 printf("................/n");
 va_fun(2,4,-1);
 printf("................/n");
 va_fun(-1);
 printf("................/n");
 //va_fun(); 可变参数函数最少要有一个参数。
}

回答2:

如果类型相同,使用数组是可以的。。。。。。。