《C和指针》——stdarg宏简介
来源:互联网 发布:电脑手绘软件 编辑:程序博客网 时间:2024/06/14 08:30
可变参数列表是通过宏来实现的,这些宏定义于stdarg.h头文件,它是标准库的一部分。这个头文件声明了一个类型 va_list 和三个宏—— va_start、va_arg 和 va_end。我们可以声明一个类型为 va_list 的变量,与这几个宏配合使用,访问参数值。
函数声明了一个名叫 var_arg 的变量,它用于访问参数列表的未确定部分。这个变量通过调用 va_start 来初始纶。它的第1个参数是 va_list 变量的名字,第2个参数是省略号前最后一个有名字的参数。初始化过程把 var_arg 变量设置为指向可变参数部分的第1个参数。
为了访问参数,需要使用 va_arg ,这个宏接受两个参数:va_list 变量和参数列表中下一个参数的类型。下面这个例子中,所有的可变参数老师整型。在有些函数中,可能要通过前面获得的数据来判断下一个参数的类型。va_arg返回这个参数的值,并使 var_arg 指向下一个可变参数。
最后,当访问完毕最后一个可变参数之后,我们需要调用 va_end。
程序示例:
#include <iostream>#include <stdarg.h>using namespace std;float average(int n_values, ...){ va_list var_arg; float sum = 0; //准备访问可变参数 va_start(var_arg, n_values); //添加取自可变参数列表的值 for (int count = 0; count < n_values; ++count){ sum += va_arg(var_arg, int); } //完成处理可变参数 va_end(var_arg); return sum / n_values;}int main(){ int n_values = 6; cout << average(6, 1, 2, 3, 4, 5, 6) << endl; return 0;}
程序结果:
0 0
- 《C和指针》——stdarg宏简介
- c语言—stdarg宏(函数可变参数实现)
- stdarg.h简介和使用
- c 函数 stdarg 宏
- C和指针读书笔记——部分简介
- 《C标准库》——之<stdarg.h>
- 编写一个可变参数的C函数——头文件stdarg.h中宏va_start ,va_arg和va_end的应用
- 编写一个可变参数的C函数——头文件stdarg.h中宏va_start ,va_arg和va_end的应用
- c可变参数和stdarg.h
- (C和指针)1.1简介
- C++——智能指针简介
- stdarg.h 简介
- stdarg.h简介
- stdarg.h简介
- stdarg 宏
- C和指针读书笔记——指针
- 《c和指针》摘录4—指针
- C标准库源码解读(VC9.0版本)——stdarg.h
- JSP第一个实例之用户管理系统
- Oracle高级篇之start with关键字的用法
- SQL提高查询效率【in、not in、between、like】等条件讲述
- 使用vlc搭建http ts流服务器
- 《CODE》 读书笔记16
- 《C和指针》——stdarg宏简介
- 《深入理解Android 卷I》读书笔记
- Android Studio中的图片存放
- 文章标题
- 远程访问ipython notebook
- 运行react-native项目时报错。
- Docker
- Spring配置redis
- 递推递归练习--J(数学黑洞)