zoukankan      html  css  js  c++  java
  • [c/c++]可变参数的使用

    一、可变参数简介

    当一个函数需要传递未知个数的参数时,就需要用到可变参数,

    比如常见的printf()函数,输出多个变量:

    printf("print para1:%d ,para2 :%d",para1,para2);

    二、相关函数

    va_list  用来存储可变参数的数据类型

    type va_arg (va_list ap, type) 获取下一个参数

    void va_start (va_list ap, paramN); 初始化可变参数列表

    void va_end (va_list ap); 释放资源

    /* va_start example */
    #include <stdio.h>      /* printf */
    #include <stdarg.h>     /* va_list, va_start, va_arg, va_end */
    
    void PrintFloats (int n, ...)
    {
      int i;
      double val;
      printf ("Printing floats:");
      va_list vl;
      va_start(vl,n);
      for (i=0;i<n;i++)
      {
        val=va_arg(vl,double);
        printf (" [%.2f]",val);
      }
      va_end(vl);
      printf ("
    ");
    }
    
    int main ()
    {
      PrintFloats (3,3.14159,2.71828,1.41421);
      return 0;
    }

    三、注意事项:

    1、如果调用了va_start,在结束时必须调用va_end来释放资源

    2、如果va_list ap被va_start初始化过,再次初始化前需要先调用va_end释放一下

  • 相关阅读:
    list和set的区别
    tcp与udp协议的区别
    c3p0的数据库连接池
    mysql的连接
    HAVING 的使用 及笛卡尔积
    break-跳出内循环
    求素数(范围自改)
    1-100累加
    1-100累乘
    类实例:飞机大战
  • 原文地址:https://www.cnblogs.com/zhengxl5566/p/8625428.html
Copyright © 2011-2022 走看看