zoukankan      html  css  js  c++  java
  • C 可变参数

    参考链接:https://www.runoob.com/cprogramming/c-variable-arguments.html
    怎样让函数接受不同个数的参数呢,可以通过stdarg.h头文件提供的函数和宏来实现。此头文件提供了实现可变参数功能相关的函数和宏。

    可变参数的形式

    //定义
    int func(int num ,...){//真真的就是这样定义的,就是有省略号,前面除了表示接受个数的num外,还可以自定义其他参数
    ……
    }
    //使用
    result=func(2,a1,a2);//在使用这个函数的时候,第一个值必须时int类型,代表这次传递参数的个数
    

    过程

    #include <stdio.h>
    #include <stdarg.h>
    
    int add(int num ,...){
        //在函数中定义一个va_list类型变量,该类型是由stdarg.h头文件中定义的
        va_list valist;
        int result =0;
        //使用 add()中的int 参数和va_start宏来初始化va_list类型变量为一个参数列表,宏va_start是一个定义在stdarg.h中的函数
        va_start(valist,num);//初始化后会把所有接收到的可变参数都放在了valist中
        //使用va_arg宏和va_list类型变量来访问参数列表中每一个项
        int i;
        for(i=0;i<num;i++){
            result+=va_arg(valist,int);//i并不参与
        }
        //当对可变参数的访问结束后,使用va_end来清理赋予va_list类型变量的内存
        va_end(valist);
        return result;
    }
    int  main(){
        //使用
       printf("结果是:%d",add(2,10,10));
       printf("结果是:%d",add(3,10,10,10));
    
    }
    
  • 相关阅读:
    ZooKeeper Java例子(六)
    css盒模型
    竖直方向三栏布局
    水平方向三栏布局
    js判断一个字符串是以某个字符串开头
    js防止重复点击
    升级 AngularJS 至 Angular
    js实现大文件分片上传的方法
    使用svn进行本地代码管理
    angular使用代理解决跨域
  • 原文地址:https://www.cnblogs.com/Gaoqiking/p/11735410.html
Copyright © 2011-2022 走看看