第 16 章 C 預處理器和 C 庫(可變參數:stdarg.h)
阿新 • • 發佈:2018-07-04
args rar 分享 預處理 close aps code 可變 use
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 14varargs.cs = 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); //清理工作 3435 return tot; 36 }
第 16 章 C 預處理器和 C 庫(可變參數:stdarg.h)