首先看我写的事例:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <iostream>
#include <string.h>
#include <stdarg.h>
using namespace std ;
void test_arg(const char *ag , ...)
{
va_list ap;
va_start(ap,ag); //将ag参数以后的参数列入ap,ag这个参数不会在里面
printf("ag=%s \n",ag); //注意这个,如果不加这个第一个参数不会打印
char *A ;
while(A= va_arg(ap,char *)) //如果下一个是int类型 则va_arg(ap,int) 返回类型需要自己注意
{
printf("A=%s \n ",A);
}
va_end(ap);
}
int main (void)
{
test_arg("aaa","bdd","cdd","ddd");
return 0;
}
结果:
详情查看 man va_start