您的位置:首页 > 其它

可变数目的函数参数

2008-12-10 11:23 204 查看
 可变数目的函数参数:

       宏va_start()、va_end()、va_arg()一起作用,便可以向函数传入可变数目的参数操作

宏原型:

       void
va_start(va_list argptr, last_parm);

       void
va_end(va_list argptr);

       type va_arg(va_list argptr, type);

参数说明:

       Last_parm为参数列表的数组名

      

实例:

# include <stdio.h>

# include <stdarg.h>

 

double sum_series(int num,
...);

 

int main()

{

       double d;

 

       d = sum_series(4, 0.5, 0.25, 0.125, 0.0625);

 

       printf("Sum of series is
%f./n", d);

 

       return 0;

}

 

double sum_series(int num, ...)

{

       double sum = 0.0, t;

       va_list argptr;               //[/b]①[/b]

 

       /* 初始化argptr */

       va_start(argptr, num); //[/b]②[/b]

 

       /* 计算序列之和*/

       for( ; num; num--)

       {

              t = va_arg(argptr, double);//[/b]③[/b]

              sum = sum + t;

       }

 

       va_end(argptr);//收尾处理//[/b]④[/b]

       return sum;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: