一个函数可以接受不定数的参数个数,这就是可变参数函数,比较常见的比如printf(),scanf();
printf(const char*format,…);
printf(“%d”,i);
printf(“%s”,s);
printf(“the numberis %d,stirng is :%s”,i,s);
变量参数函数的简单实现:
#include#include
int simple(intnum,...)
{int i,result = 0;
va_list vl;
va_start(vl,num);
printf("num:%d, vl:%d\n",num,*vl);for(i = 0; i < num - 1 ; i++)
{
result= va_arg(vl,int);
printf("in for result:%d ,*vl:%d\n",result,*vl);
}
va_end(vl);returnresult;
}intmain()
{int sum = simple(5,1,2,3,4,5);if(0 ==sum)
{
printf("simple failed\n");
}else{
printf("simple success! sum = %d\n",sum);
}return 0;
}
结果如下:
exbot@ubuntu:~/wangq