#include "stdio.h"
#include "stdarg.h"
void simple_va_fun(int start, ...)
{
va_list arg_ptr;
int nArgValue =start;
int nArgCout=0; //可变参数的数目
va_start (arg_ptr,start); //以固定参数的地址为起点确定变参的内存起始地址。
do
{
++nArgCout;
printf("the %d th arg: %d\n",nArgCout,nArgValue); //输出各参数的值
nArgValue = va_arg(arg_ptr,int); //得到下一个可变参数的值
} while(nArgCout<3);//nArgValue != -1);
return;
}
int main(int argc, char* argv[])
{
simple_va_fun(100,-1);
printf("===================\n");
simple_va_fun(100,200,-1);
return 0;
}
//=============================================================
#include "stdio.h"
#include "stdarg.h"
void simple_va_fun(const char *arg, ...)
{
va_list arg_ptr;
char *nArgValue[20] ;
memset(nArgValue,0,sizeof(nArgValue));
nArgValue[0] =arg;
int nArgCout=0; //可变参数的数目
va_start (arg_ptr,arg); //以固定参数的地址为起点确定变参的内存起始地址。
do
{
printf("the %d th arg: %s\n",nArgCout,nArgValue[nArgCout]); //输出各参数的值
++nArgCout;
nArgValue[nArgCout] = va_arg(arg_ptr,char *); //得到下一个可变参数的值
} while(nArgValue[nArgCout]);//nArgValue != -1);
return;
}
int main(int argc, char* argv[])
{
simple_va_fun("100","-1",NULL);
printf("===================\n");
simple_va_fun("100","200","-1",NULL);
return 0;
}
输出打印:
the 0 th arg: 100
the 1 th arg: -1
===================
the 0 th arg: 100
the 1 th arg: 200
the 2 th arg: -1
阅读(1059) | 评论(0) | 转发(0) |