C语言学习笔记——可变参数列表
2014-10-13 12:15
274 查看
stdarg.h提供了可用于可变参数列表的宏,这是标准库的一部分,定义为va_list,主要包括以下三个部分:va_start, va_arg, va_end.
va_list是要读取的参数列表,va_start(var_arg, n_values);和va_end(var_arg);之间是主要要实现的流程。具体例子如下:
va_list是要读取的参数列表,va_start(var_arg, n_values);和va_end(var_arg);之间是主要要实现的流程。具体例子如下:
Writer: P.C. Date: 2014.10.13 11:09 Description: 利用stdarg.h来实现参数列表的可变性 */ #include "stdafx.h" #include "stdio.h" #include "stdarg.h" void printargs(int arg1, ...) { va_list ap;//定义参数列表 int i; int sum=0; int count=0; va_start(ap, arg1); //启动参数列表的读取 for (i = arg1; i != -1; i = va_arg(ap, int))//参数列表读取的过程,-1是人为设定的终止,可以替换成其他的,如>10,则读取到第一个大于10的数便终止 { sum=sum+i; count++;} va_end(ap);//结束参数列表的读取 printf("%d\n",sum/count); } int main(void) { printargs(1,2,3,4,5,-1);//一定要设置好终止位,否则会出错 return 0; }以前都是通过设定多种构造函数来实现不同参数个数的输入,利用这个头文件相对更便利一些,但也会参加对参数控制的麻烦和出错的可能性
相关文章推荐
- java可变长参数列表
- Java:可变参数列表
- Objective-c 可变参数列表缺陷
- 可变参数列表源码的理解与剖析
- 可变参数为什么要放参数列表最后?
- JAVA的可变参数列表
- Object..values可变参数列表,可理解为object[]数组类型
- 详解可变参数列表
- 模拟实现printf函数,可变参数列表实例
- java类型后面加三个点——可变长度参数列表
- php方法固定传参和可变参数的参数列表
- C学习—可变参数列表
- 可变参数列表解析理解及使用可变参数实现求平均值
- 修改java的可变参数列表的方法
- Thinking in java 之:可变参数列表
- 用可变参数列表模拟实现printf函数
- 可变长参数列表误区与陷阱——va_end是必须的吗?
- c语言中对可变参数列表的简单理解
- 可变参数列表
- c语言函数可变参数列表