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释放一下

  • 相关阅读:
    CSS3---用户界面
    CSS3---媒体查询与响应式布局
    HDU 5285 wyh2000 and pupil
    POJ 2488 A Knight's Journey
    POJ 1067 取石子游戏
    POJ 2777 Count Color
    POJ 3259 Wormholes
    Project Euler 26 Reciprocal cycles
    POJ 2104 K-th Number
    POJ 1013 Counterfeit Dollar
  • 原文地址:https://www.cnblogs.com/zhengxl5566/p/8625428.html
Copyright © 2011-2022 走看看