Chinaunix首页 | 论坛 | 博客
  • 博客访问: 568958
  • 博文数量: 117
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 359
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-13 21:58
个人简介

爱上香烟

文章分类

全部博文(117)

文章存档

2018年(3)

2017年(8)

2016年(65)

2015年(41)

我的朋友

分类: LINUX

2016-04-07 09:48:30

#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) |
给主人留下些什么吧!~~