头文件 stdarg;类型va_list;宏va_start;宏va_arg;宏va_end
1 #include <stdio.h>2 #include <stdarg.h>3 4 // 只能是3个点 ...5 int printArgs(int begin, ...)6 {7 va_list ap;8 char *p;9 int count;10 // va_start 初始化va_list类型变量,使其指向可变参数列表的头11 va_start(ap, begin);12 // va_arg 返回一个可变参数,并使ap指向下一个可变参数13 p = va_arg(ap, char *);14 count = 0;15 while(p != NULL)16 {17 count++;18 printf("arg %d: %s\n", count, p);19 p = va_arg(ap, char *);20 }21 // va_end 清理工作22 va_end(ap);23 return count;24 }25 26 int main(void)27 {28 int count;29 30 count = printArgs(-1, "hello", "world", NULL);31 printf("the number of arguments: %d\n", count);32 33 count = printArgs(0 , "jiangsu", "nanjing", "qixia", NULL);34 printf("the number of arguments: %d\n", count);35 return 0;36 }