可变参数的使用
原创
©著作权归作者所有:来自51CTO博客作者mengqiucheng的原创作品,请联系作者获取转载授权,否则将追究法律责任
可变参数列表式通过宏来实现的,宏定义在 stdarg.h头文件中,该头文件声明了一个类型va_list 和三个宏 。
提供的三个宏分别如下:
这种隐式的数据类型是va_list。
上面宏的前缀va表示variable argument,即可变参数的意思。变量ap专门用来记录获取可变参数。下面依次介绍三个宏的意义和用法。
last为函数形参中"..."前的最后一个形参名字,宏va_start用于根据last的位置(或指针)来初始化变量ap,以供宏ar_arg来依次获得可变参数的值。变量ap在被va_arg或va_end使用前,必须使用va_start初始化。
下面我们来探讨如何写一个简单的可变参数的C函数.写可变参数的
提供的三个宏分别如下:
void va_start(va_list ap, last);
type va_arg(va_list ap, type);
void va_end(va_list ap);
这种隐式的数据类型是va_list。
上面宏的前缀va表示variable argument,即可变参数的意思。变量ap专门用来记录获取可变参数。下面依次介绍三个宏的意义和用法。
[*] void va_start( va_list ap, last)
last为函数形参中"..."前的最后一个形参名字,宏va_start用于根据last的位置(或指针)来初始化变量ap,以供宏ar_arg来依次获得可变参数的值。变量ap在被va_arg或va_end使用前,必须使用va_start初始化。
[*] type va_arg(va_list ap, type)
va_arg宏用来获得下一个参数的值,type为该参数的类型,它的参数ap必须被va_start初始化,通过该宏后,返回参数值并使用ap指向下一个参数,以供va_arg再次使用。如果没有下一个参数时调用va_arg或arg指定的类型不兼容时,会产生可知的错误。[*]void va_end(va_list ap)
下面我们来探讨如何写一个简单的可变参数的C函数.写可变参数的
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
52、Flink的应用程序参数处理-ParameterTool介绍及使用示例
Flink 系列文章一、Flink 专栏Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。1、Flink 部署系列本部分介绍Flink的部署、配置相关基础内容。2、Flink基础系列本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。3、Flik Table API和SQL基础系列本部
flink flink kafka flink hive flink 实时计算 flink paramtertool -
C语言可变参数的使用
概要众所周知,C++支出函数重载,而C语言默认是不支持。但是,C语言可以通
C重载 可变参数 重载函数 debug调试 #include -
可变参数的使用(法二)
//02.可变参数的使用方式二:// 1.不采用可变参数前置参数作为读取结束条件,而是按
可变参数 函数 编程 c语言 可变参数列表 -
java可变参数的使用 java可变类型
一、可变类型与不可变类型 不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。
java可变参数的使用 java 开发语言 数据类型 List