C和指针之函数之可变参数
【摘要】 1、可变参数如何实现
可变参数列表是通过宏来实现的,这些宏定义在stdarg.h头文件中,这个头文件声明了一个类型va_list和三个宏,va_start、va_arg、va_end,一般我们声明一个类型为va_list的变量,和这个几个宏配合使用,访问参数的值。
2、实现一个函数多个参数求均值
比如...
1、可变参数如何实现
可变参数列表是通过宏来实现的,这些宏定义在stdarg.h头文件中,这个头文件声明了一个类型va_list和三个宏,va_start、va_arg、va_end,一般我们声明一个类型为va_list的变量,和这个几个宏配合使用,访问参数的值。
2、实现一个函数多个参数求均值
比如我们需要实现制定数量的值得平均值(求参数值的平均值)
思路:
1、初始化一个va_list变量
2、用va_start来实现初始化,第一个参数是va_list变量,第二个参数是可变参数的第一个参数
3、用va_arg宏来访问参数,va_arg来接受两个参数:va_list变量和参数列表的下一个参数类型
4、用完可变参数之后,我们需要调用va_end
代码实现:
-
#include <stdio.h>
-
#include <stdarg.h>
-
-
float average(int n_values, ...)
-
{
-
va_list var_arg;
-
int i;
-
float sum = 0;
-
//准备访问可变参数
-
va_start(var_arg, n_values);
-
//添加取自可变参数列表的值
-
for (i = 0; i < n_values; i++)
-
{
-
sum += va_arg(var_arg, int);
-
}
-
文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。
原文链接:chenyu.blog.csdn.net/article/details/78473227
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)