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

2018-12-04 07:11:58来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

 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

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:c语言中 *p++ 和 (*p)++ 有什么区别?以及C语言运算符的优先级。

下一篇:【golang-GUI开发】Qt5的安装