可变参数函数的使用步骤:
1、在函数原型中使用省略号“...”;
2、在函数定义中创建一个va_list类型的变量(用于存放省略的参数);
3、用宏将该变量初始化为一个参数列表;
4、用宏访问这个参数列表;
5、用宏清理所创建的va_list类型变量;
#include<starg.h>
...
int Fun_Arg(int n,...); //可变参数函数声明,省略号前第一个参数必须为int类型以说明省略参数的个数
int main(void)
{
......
}
int Fun_Arg(int n,...)
{
va_list ap; //创建va_list变量ap
......
va_start(ap,n); //用宏把ap初始化为参数列表
......
va_arg(ap,参数类型); //用宏取参数(如var=va_arg(ap,int)),不后退。所以C99标准还有宏va_copy(ap1,ap2);
//将ap2复制到ap1,便于一次去参数后下次继续可从头开始取参数
......
va_end(ap); //用宏清理创建的变量
}