C标准库学习之<stdarg.h> ——不定参数处理

#include<stdio.h>
#include<windows.h>
#include<stdarg.h>  //  chu理可bian参数
#include<string.h>



/*
=========================================================
time:           2017年2月3日10:20:40
objective:      test C language's  head file of <stdarg.h> 
version:        Microsoft Visual C++
author:         ChenFei
remark:         日文system  有些字没法打要用pin音代替
=========================================================
*/

/*
    void va_start(va_list ap, last_arg)     // 初始化 ap,last_arg wei最后一个chuan di gei 函数的已知固定参数
    type va_arg(va_list ap, type)           // du取下一个lei型wei type的参数。
    void va_end(va_list ap)                 // jie束du取,如果没有diao用 va_end(), ze jie果wei   未定yi
*/

double add(int num, ...)    // 可bian参数,至少要定yi一个
{
    double last = 0.0;
    int i;

    va_list argp;           //  chuang建一个 va_list lei型的dui象
    va_start(argp, num);    //  kai始du取参数,du取num个参数,并把地址放在argp里

    for (i = 0;i < num;i++)
    {
        double temp = va_arg(argp, double);     //  du取下一个lei型wei double 的参数
        printf("%f\n", temp);
        last += temp;
    }
    va_end(argp);           //  du取jie束

    return last;
}

void go(int num, ...)
{
    int i;

    va_list argp;

    va_start(argp, num);

    for (i = 0;i < num;i++)
    {
        char str[50];
        strcpy(str, va_arg(argp, char *));
        printf("%s\n", str);

    }
    va_end(argp);
}


int main(void)
{
    int x = 10;
    double jieguo = 0;

    jieguo = add(x, 1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.10, 10.11);   //  x不定,如果x wei 10,ze要du取10个参数

    printf("last=%f\n", jieguo);
    go(5, "notepad", "calc", "tasklist", "ipconfig", "mspaint");

    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值