您的位置:首页 > 其它

C函数动态参数问题

2008-05-29 15:08 204 查看
#include <stdarg.h>

必须:

(1)在函数原型中使用省略号;

(2)在函数定义中创建一个va_list类型的变量;

(3)用宏将该变量初始化为一个参数列表;

(4)用宏访问这个参数列表;

(5)用宏完成清理工作。

宏va_start() 把参数列表复制到va_list变量中,有两个参数:va_list类型的变量和参量

parmN

宏va_arg() 访问参数列表中的内容,有两个参数:va_list类型的变量和类型名

宏va_end() 完成清理工作,释放动态分配的内存

宏va_copy() 保存va_list副本

#include <stdio.h>

#include <stdarg.h>

double sum(int, ...);

int main(void)

{

double s;

s = sum(3, 1.1, 2.2, 3.3);

printf("sum(1.1,2.2,3.3) = %f/n", s);

return(0);

}

double sum(int lim, ...)

{

va_list ap; // declare variable used to save para

double total = 0;

int i;

va_start(ap, lim); // initialize ap to para list

for(i=0; i<lim; i++){

total += va_arg(ap, double); // visit para list

}

va_end(ap); // clean

return(total);

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