码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-07-03 23:44:13      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:none   分享图片   列表   pen   start   ++   lap   初始   end   

技术分享图片
 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)

标签:none   分享图片   列表   pen   start   ++   lap   初始   end   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!