c语言函数的可变参数列表

在函数原型中,列出了函数期望接收的参数,但是原型只能显示固定数目的参数。
在c语言中能不能在不同的时候接收不同数目的参数呢?答案是肯定的
stdarg宏
可变的参数列表是通过宏来实现的,这些宏定义与 stdarg.h头文件,它是标准库的一部分
这个头文件声明了一个类型va_list 和 三个宏-------- va_star va_arg  va_end.
下面是书本的一个例子
//计算指定数量的值的平均值
#include<stdarg.h>
float average(int n_values,...)//...代表传递数量和类型未确定的参数
{
    va_list var_arg;
    int count;
    float sum = 0;
//准备访问可变参数
    va_start(var_arg,n_values);
//从头到尾,依次访问可变列表的值
    for(count = 0; count < n_values; count ++ )
    {
        sum += va_arg(var_arg,int);
    }
//完成处理可变参数
        va_end(var_arg);
        return sum / n_values;
    }




处理的参数默认为整形,如果不是整形就会发生类型的提升。如果指定了错误的类型,那么其结果是不可预测的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值