c语言中的函数可变参数列表相关的三个宏
在stdarg.h头文件中声明了一个类型va_list和3个与函数可变参数列表有关的宏:va_start、va_arg、va_end。
#include<stdarg.h> //包含宏相关的头文件
float average(int n_values,...) //指定数量的值的平均值
{
va_list args; //声明一个va_list 的变量
int count;
float sum=0;
var_start(args,n_values);
for(count=0;count<n_values;count++)
{
sum+=va_arg(args,int);
}
var_end(args);
return sum/n_values;
}
说明:
var_start(args,n_values);
第一个参数为va_list变量,第二个参数为参数列表中最后一个有名字的参数。作用是使args指向省略号部分的第一个参数。
va_arg(args,int);
第一个参数为va_list变量,第二个参数为参数列表中下一个参数的类型。该类型有时候需要由前面获得的数据类型来判断。该函数宏的作用是返回args所指的当前参数的值,并使其指向下一个可变参数的地址。
var_end(args);
完成处理可变参数。
转载于:https://www.cnblogs.com/lulululu/p/3693839.html
c语言中的函数可变参数列表相关的三个宏相关推荐
- C语言_函数可变参数列表
函数可变参数列表的应用和原理 在网上看到各位前辈关于这部分的介绍有些是过于简洁,有些则是过于晦涩,有的代码拿出来甚至在编译器上跑不过去,所以在这里讲一下自己对于可变参数的认识,若有不正确的地方,欢迎各 ...
- php函数可变参数列表,PHP函数可变参数列表的具体实现方法介绍
也许对于PHP初级程序员来说,对于PHP函数并不能完全熟练的掌握.我们今天为大家介绍的PHP函数可变参数列表的实现方法主要是利用func_get_args(). func_num_args().fun ...
- python 函数参数列表_Python 函数可变参数列表*args和**kwargs
许多语言都支持可变参数列表,python也不例外.python的可变参数列表有点不太一样,有两种类型的可变参数列表,一种是元组,一种是字典. 一,元组参数列表: (1)函数定义形式:def func( ...
- c++函数可变参数列表foo(int a, ...){}中的省略号“...”
int add(int num,...) /*求和函数*/ {va_list args;int sum=0;va_start(args,num);for(int i=0;i<num;i++)su ...
- C语言实现可变参数列表的system接口:宏__VA_ARGS__
目录 t_shell.h t_shell.c 效果 t_shell.h /* file name: t_shell.h* author: Rong Tao* create time: 2018.11. ...
- C语言中函数的参数列表为空和void的区别
C标准和C++标准在main函数上是有区别的,所以我分别详细来介绍他们. 对于C语言: C89标准的main()函数是可接受的,尽管现在建议是使用C99的标准.C99标准只定义了如下两种可接受的函数原 ...
- c语言理解参数,c语言中对可变参数列表的简单理解
函数原型中一般情况下参数的数目是固定的,但是如果想在不同的时候接收不定数目的参数时该怎么办呢?c语言提供了可变参数列表来实现. 可变参数列表是通过宏来实现的,这些宏定义在stdarg.h的头文件中.头 ...
- C语言中可变参数列表
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105113526 可 ...
- c语言 函数多个参数,C语言函数可变参数
C语言函数可变参数教程 可变参数的函数必须至少有一个强制参数,可选参数的类型可以变化.可选参数的数量由强制参数的值决定,或由用来定义可选参数列表的特殊值决定. 对于每一个强制参数来说,函数头部都会显示 ...
最新文章
- Caffe 中关于 LetNet-5 网络的定义文件 lenet.prototxt 解析
- dom对html增删改操作,6.DOM对HTML元素的增删改操作
- python 结束进程 terminate_python – 如果已存在浏览器窗口,则process.terminate()不适用于chrome / firefox子进程...
- 简述Python中的break和continue的区别
- Editplus的扩展程序的删除
- Python 画樱花(动态画+飘落效果+暗色效)
- 图像识别中卷积神经网络“卷积”的作用
- openssl 开启AES-NI指令集性能增加
- 七分钟理解什么是 KMP 算法
- 带有骆驼,ActiveMQ,Elasticsearch的HL7关键用例
- @程序员,入行物联网的避坑指南!| 技术头条
- B站,N站,汤站,爬虫下载资源总结与技巧(一)
- 【03】AngularJS 简介
- 质量值体系 Phred33 和 Phred 64 的由来 及其在质量控制中的实际影响
- 数字电路与逻辑设计——加法器实现
- 最新xcode打包IPA----2021.1.18(完整详细图文)
- 网页制作中PS图像处理的应用
- Atitit 艾提拉整理清明节的诗歌集合 清明节的特征 万物复苏 百草发芽 尝试从股市 其他外国诗歌集 得到清明的诗歌 约谈春天 歌颂春天 下雨 不见方三日、 夜来风雨声,花落知多少。(
- 过滤多余的空格-C语言
- 小说阅读网html+css+JavaScript