首先看我写的事例:

#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;
}

结果:
C++可变参数 ...

详情查看  man va_start 

C++可变参数 ...

相关文章: