所需的头文件为:stdarg.h fmt 和类型比较重要
va_list args;
va_start(args,fmt);
va_arg(args,类型)/vsprintf(buf,fmt,args)
va_end(args);
#include<stdio.h>
#include<stdarg.h>
//除了 pintf_info 其他基本没有用,还不如传结构体
void printf_info(const char *format,...)
{
char buf[128];
va_list arg;
va_start(arg,format);
vsprintf(buf,format,arg);
va_end(arg);
printf("%s",buf);
}
void get_info(int num,...)
{
va_list arg;
va_start(arg,num);
int i=0;
while(i<num)
{
if(i==0){
char *str=va_arg(arg,char*);
printf("%s ",str);
}
else{
int tmp=va_arg(arg,int);
printf(" %d ",tmp);
}
i++;
}
printf(" \n");
va_end(arg);
}
void printf_int(int num,...)
{
int *tmp=#
int i=0;
while(i<num)
{
tmp++;
printf(" %d ",*tmp);
i++;
}
printf(" \n");
}
void printf_int_1(int num,...)
{
va_list arg;
va_start(arg,num);
int i=0;
while(i<num)
{
int tmp=va_arg(arg,int);
printf(" %d ",tmp);
i++;
}
printf(" \n");
va_end(arg);
}
int main(int argc,char*argv[])
{
int a=1,b=3,c=5;
printf_int(3,a,b,c);
printf_int_1(3,a,b,c);
printf_info("%s %d %d\n",__FUNCTION__,__LINE__,a);
get_info(3,__FUNCTION__,__LINE__,a);
return 0;
}
输出结果: