1. 程式人生 > >第 16 章 C 預處理器和 C 庫(可變參數:stdarg.h)

第 16 章 C 預處理器和 C 庫(可變參數:stdarg.h)

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 
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)