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

Posted web1013

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第 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

技术分享图片

以上是关于第 16 章 C 预处理器和 C 库(可变参数:stdarg.h)的主要内容,如果未能解决你的问题,请参考以下文章

C预处理器和C库--1

第4章 可变参数模板:4.2 折叠表达式

C预处理器和C库

C/C++目录

亲密接触C可变参数函数

C 实现可变参数