zoukankan      html  css  js  c++  java
  • C 可变参数(C与指针实例)

    偶尔我们需要设计一些函数,它们的参数数目不是固定的,这样我们需要用到可变参数列表。

    可变参数列表是通过宏来实现的,定义于stdarg.h头文件。

    具体内容在《C与指针》

     1 #include <stdarg.h>
     2 #include <stdio.h>
     3 
     4 float average(int n_values, ... )
     5 {
     6     va_list var_arg; //用于访问参数列表的未确定部分,通过va_start来初始化
     7     int count;
     8     float sum = 0;
     9 
    10     /*
    11         准备访问可变参数
    12      */
    13     va_start( var_arg, n_values );  //第一个参数为va_list变量的名字,第二个参数为省略号前最后一个有名字的参数。初始化过程把va_list变量设置为指向可变参数的第一个参数
    14     
    15     /*
    16         添加取自可变参数列表的值
    17      */
    18     for( count = 0; count < n_values; count += 1 )
    19     {
    20         sum += va_arg( var_arg, int );  //可变参数必须从头到尾顺序逐个访问。在va_arg中注意不可以指定错误的类型。
    21     }
    22 
    23     /*
    24         完成处理可变参数
    25      */
    26     va_end( var_arg );
    27 
    28     return sum / n_values;
    29 }
    30 
    31 int main()
    32 {
    33     int a = average(1012345678910);
    34     printf("The average: %d ", a);
    35     return 0;
    36 }
  • 相关阅读:
    《梦断代码》阅读笔记01
    linux c netcdf 安装
    Windows CE中的进程和线程
    VC做任务管理器涉及到的函数
    curl_easy_getinfo() -- 从 curl 句柄里获得附加信息
    libcurl programming
    动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
    C++: byte和int的相互转化
    8位灰度图像BMP的保存
    BMP图像的结构及读写和灰度化
  • 原文地址:https://www.cnblogs.com/alan-forever/p/3290274.html
Copyright © 2011-2022 走看看