1.C标准库中有一组宏,可用于建立可变参数函数(接受数量可变参数的函数)
举例:
#include<stdarg.h>//包含stdarg.h头文件,处理可变参数函数 #include<stdio.h> void print_ints(int args,...);//args后是可变参数 { va_list ap;//va_list用来保存可变参数 va_start(ap,args);//说明可变参数从哪里开始 int i; for (i = 0;i < args;i++) printf("ragument:%i ",va_arg(ap,int));//va_arg接受两个值,va_list和参数类型 va_end(ap);//用va_end告诉c做完了 } void main() { print_ints(3,79,101,32); }
2.va_end、va_start是宏,不是函数
3.可变参数函数中必须有普通参数,这样才能把他的名字传给va_start
4.读取参数时不能超出给出的函数个数
5.需要知道要读取的参数的类型