// printf_va_list.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
void Print(const char* fmt,...)
{
va_list ap;
va_start(ap,fmt);
vfprintf(stderr,fmt,ap);
va_end(ap);
}
void fun(const char* fmt,...)
{
va_list ap;
va_start(ap, fmt);//将ap指向fmt后的第一个参数
int value;
do{
value = va_arg(ap,int);//前提是我们知道第一个参数是int型;指针指向下一个参数
printf("value[%d]\n",value);
}while(value!=-1);
va_end(ap);//将ap置为NULL
}
int _tmain(int argc, _TCHAR* argv[])
{
Print("%d%d%s",32,23,"zjw");
fun("%d%d%s%d",32,23,"zjw",-1);
system("pause");
return 0;
}
RES:http://www.cnblogs.com/hcbin/archive/2012/03/26/2417355.html