首先要包含头文件#include <stdarg.h>
然后就可定义函数了,如下
double add_values( char *str,...)//...就是变长参数表的声明
{
va_list marker;//声明储存函数参数堆栈的变量
double resoult = 0.0;
va_start(marker,str);//初始化参数列表对象,并把第一个参数的参数栈指针赋值给声明的参数列表对象
while ( *str )
{
if ( '%' == *str )
{
switch ( *(++str) )
{
case 'd':
resoult += va_arg( marker,int );//在参数堆栈中取下一个int值,并且参数指针往下迭代
break;
case 'f':
resoult += va_arg( marker,double );
break;
}
}
str++;
}
va_end(marker);//释放参数列表对象
return resoult;
}
注释应该还是很清晰的