首页 > 其他 > 详细

C基础知识(12):可变参数

时间:2017-11-13 16:23:27      阅读:289      评论:0      收藏:0      [点我收藏+]

该功能需要使用<stdarg.h>函数的最后一个参数写成省略号,即三个点号(...)省略号之前的那个参数是int,代表了要传递的可变参数的总数。该文件提供了实现可变参数功能的函数和宏。

具体步骤如下:

(1) 定义一个函数,最后一个参数为省略号,省略号前面可以设置自定义参数。

(2) 在函数定义中创建一个va_list类型变量。

(3) 使用int参数和va_start宏来初始化va_list变量为一个参数列表。

(4) 使用va_arg宏和va_list变量来访问参数列表中的每个项。

(5) 使用宏va_end来清理赋予va_list变量的内存。

 1 #include <stdio.h>
 2 #include <stdarg.h>
 3 
 4 double average(int num, ...);
 5 
 6 int main() {
 7     printf("Average of 2, 3, 4, 5 = %f\n", average(4, 2, 3, 4, 5));
 8 }
 9 
10 double average(int num, ...) {
11     va_list valist;
12     double sum = 0.0;
13     int i = 0;
14     // 为num个参数初始化valist
15     va_start(valist, num);
16     // 访问所有赋给valist的参数
17     for (i = 0; i < num; i++) {
18         sum += va_arg(valist, int);
19     }
20     // 清理为valist保留的内存
21     va_end(valist);
22     return sum / num;
23 }

 

C基础知识(12):可变参数

原文:http://www.cnblogs.com/storml/p/7826396.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!