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