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 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步