va_list是用来处理可变参数的,下面看一个示例。

#include "stdarg.h"
#include <stdio.h>

int test(char* msg, ...);

int main()
{

    test("hello", "wolrd",1);
    return 0;
}

int test(char* msg, ...)
{
    va_list vaList; //定义一个具有va_list型的变量,这个变量是指向参数的指针。
    va_start(vaList, msg);//始化变量刚定义的va_list变量,使其指向第一个可变参数的地址,地址自动增加
    printf("msg =%s\n",msg); 
    printf("%s\n",va_arg(vaList,char*));//va_arg返回可变参数
    printf("%d\n",va_arg(vaList,int));

    va_end(vaList);//结束可变参数列表
}

运行:msg =hello 
           wolrd
           1