一、为什么使用可变参数列表?
为了解决原型函数只能显示固定数目的参数的不足,C语言定义了一种访问数目未定的参数列表的机制,这就是可变参数列表。
二、如何使用?“声明 开始 使用 结束”三步完成。
type fun(list_num,...)
{
va_list vlist;//不定参数声明
va_start(vlist,vlist_num);//指明参数个数
va_arg(vlist,type);//使参数偏移sizeof(type)字节
va_end(vlist);//结束访问
}
三、缺点
- 无法判断不定参数的个数(需另外传参)
- 无法使用隐式转换(都当成是int)
第一点导致我们需要对参数个数进行另外指定(如下例中的 n_values);第二点导致必须确保传入参数类型可靠性(不使用隐式转换规则情况下)
四、一个例子:求平均值#include
#include
double fun(int n_values, ...)
{
va_list vlist;//... uncertain parameter
int count = 0;
double sum = 0;
va_start(vlist, n_values);//start
for (; count
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?