博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言函数的可变参数列表
阅读量:4318 次
发布时间:2019-06-06

本文共 739 字,大约阅读时间需要 2 分钟。

  可变参数列表可通过宏来实现,这些宏定义在stdarg.h头文件中,它是标准库的一部分。这个头文件声明了一个类型va_list和三个宏----va_start,va_arg,va_end.可以声明一个类型为va_list的变量,与这几个宏配合使用,访问参数的值。参数列表的可变部分位于一个或多个普通参数(命名参数)的后面(即参数列表中至少要有一个命名参数),它在函数原型中以一个省略号表示。

例如:定义一个函数average可以计算若干个整数的平均值:

1 #include 
2 float average(int n_value,...) 3 { 4 va_list var_arg; 5 int count; 6 float sum=0; 7 8 va_start(var_arg,n_value); 9 10 for(count =0;count

说明:函数声明一个名叫va_arg的变量,它用来访问参数列表的未确定部分。这个变量通过调用va_start来初始化。它的第一个参数是va_list 类型变量的名字,第二个参数是省略号前最后一个有名字的参数。初始化过程把变量var_arg设置为指向可变参数部分的第一个参数。为了访问参数,需要使用va_arg,这个宏接受两个参数:va_list类型变量和参数列表中下一个参数的类型。在这个例子中,所有的可变参数都是整型。va_arg返回这个参数的值,并使var_arg指向下一个可变参数。最后,当访问完毕最后一个可变参数之后,需要调用va_end。

转载于:https://www.cnblogs.com/freryc/p/7991664.html

你可能感兴趣的文章
微信小程序中显示与隐藏(hidden)
查看>>
Java类加载器
查看>>
Java读取txt文件和覆盖写入txt文件和追加写入txt
查看>>
动态加载DLL
查看>>
使用Postman进行接口测试
查看>>
测试代码
查看>>
windows 安装 redis
查看>>
VIM第七版
查看>>
phpcms v9中jquery.sgallery插件升级到soChange
查看>>
Android 平台下Ftp 使用模拟器需要注意的问题
查看>>
linux以16进制查看文件
查看>>
bitmap.h和bitmaptest.c(位映射)
查看>>
避免缓存的ajax传值方法
查看>>
day6 函数
查看>>
iphone学习笔记(二)
查看>>
Android初学第73天
查看>>
14.python读写Excel
查看>>
MySQL备份类别
查看>>
ThreadLocal源码解析
查看>>
CSS浏览器兼容性与解析问题终极归纳
查看>>