第 16 章 C 预处理器和 C 库(可变参数:stdarg.h)
程序员文章站
2022-03-28 18:22:37
1 /* 2 varargs.c -- use variable number of arguments 3 */ 4 5 #include 6 #include 7 8 double sum(int, ...); 9 10 int main() 11 { ......
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 }
上一篇: 《HTML与CSS 第一章 认识HTML》读书笔记
下一篇: 移动端,点击之后某个区域后有阴影
推荐阅读
-
第 16 章 C 预处理器和 C 库(string.h 库中的 memcpy() 和 memmove())
-
第 16 章 C 预处理器和 C 库(可变参数:stdarg.h)
-
第 16 章 C 预处理器和 C 库(直角坐标转换极坐标)
-
第 16 章 C 预处理器和 C 库(qsort() 函数)
-
第 16 章 C 预处理器和 C 库(预定义宏)
-
第 16 章 C 预处理器和 C 库(条件编译)
-
第 16 章 C 预处理器和 C 库(可变参数:stdarg.h)
-
第 16 章 C 预处理器和 C 库(string.h 库中的 memcpy() 和 memmove())
-
第 16 章 C 预处理器和 C 库(预定义宏)
-
第 16 章 C 预处理器和 C 库(直角坐标转换极坐标)