欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

第 16 章 C 预处理器和 C 库(可变参数:stdarg.h)

程序员文章站 2022-03-28 18:22:37
1 /* 2 varargs.c -- use variable number of arguments 3 */ 4 5 #include 6 #include 7 8 double sum(int, ...); 9 10 int main() 11 { ......
第 16 章 C 预处理器和 C 库(可变参数:stdarg.h)
 1 /*-------------------------------------------------
 2     varargs.c -- use variable number of arguments
 3 -------------------------------------------------*/
 4 
 5 #include <stdio.h>
 6 #include <stdarg.h>
 7 
 8 double sum(int, ...);
 9 
10 int main()
11 {
12     double s, t;
13 
14     s = sum(3, 1.1, 2.5, 13.3);
15     t = sum(6, 1.1, 2.1, 13.1, 4.1, 5.1, 6.1);
16 
17     printf("return value for sum(3, 1.1, 2.5, 13.3):                %g\n", s);
18     printf("return value for sum(6, 1.1, 2.1, 13.1, 4.1, 5.1, 6.1): %g\n", t);
19 
20     return 0;
21 }
22 
23 double sum(int lim, ...)
24 {
25     va_list ap;                            //声明一个对象储存参数
26     double tot = 0;
27 
28     va_start(ap, lim);                    //把 ap 初始化为参数列表
29 
30     for (int i = 0; i != lim; ++i)
31         tot += va_arg(ap, double);        //访问参数列表的每一项
32 
33     va_end(ap);                            //清理工作
34 
35     return tot;
36 }
varargs.c

第 16 章 C 预处理器和 C 库(可变参数:stdarg.h)