第一次看见可变参数编程的的例子,记录下来,应该会有用到的时候。
#include <stdio.h>
#include <stdarg.h>
int print_args(int begin, ...)
{
va_list ap;
char *p;
int n;
va_start(ap, begin);
p = va_arg(ap, char *);
n = 0;
while(p != NULL)
{
n++;
printf("arg %d : %s/n", n, p);
p = va_arg(ap, char *);
}
va_end(ap);
return n;
}
备注:
1,stdarg.h头文件定义一系列宏来处理这个可变长度的参数列表。
2,va_list 该类型的变量代表整个参数的列表。
3,va_start 初始化,使其指向第一个可变的参数,只有初始化之后,ap才能代表整个参数列表。
4,va_arg
5,对于可变参数函数,其中的第一个参数的类型是固定的,在定义的时候必须定义好,比如begin