/* 范例8-12 */#include stdio.h#include stdarg.h /* va_list等macro定义于此头文件 */void pp(int a,char b, ...) /* 含简略符号可以接受多个传入参数*/{va_list vl; /* 先将vl设定为va_list类型*/va_start(vl,a); /* 指向传入参数行中int a接收的是10的下一个,所以是传入的参数的A*/printf(%c\n,va_arg( vl, char )); /* 这是输出所指到的参数A*/printf(%c\n,va_arg( vl, char )); /* 这是输出指到所指到的参数A加上char类型的大小,所以是c*/va_start(vl,b); /* 将指针所指定的参数开头重设定为A的下一个参数,所以是c*/printf(%d\n,va_arg( vl, int )); /* 将指针指到的参数开头转成int类型,所以是99*/va_end( vl ); /* va_end将指针指向NULL.*/}void main(){pp(10,A,c,67,U); /* 传入函数的参数 */getchar();}程序执行结果Ac99