第 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
", s);
18     printf("return value for sum(6, 1.1, 2.1, 13.1, 4.1, 5.1, 6.1): %g
", 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

原文地址:https://www.cnblogs.com/web1013/p/9260984.html