码迷,mamicode.com
首页 > 编程语言 > 详细

C++中,如果我们想要获取不确定个数的参数进入函数,就可以使用va_list类型的变量

时间:2017-03-28 16:47:53      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:需要   ota   类库   列表   清空   argument   const   end   参数   

C++中如果我们想要获取不确定个数的参数进入函数,可以使用下面这种方法:

 1  1 #include <cstdarg>                              //这里我们添加进来所需要的类库<csrdarg>
 2  2 
 3  3 // first argument is int count of remaining args
 4  4 // ... remaining args are doubles for average
 5  5 
 6  6 double average(const int count, ...)
 7  7 {
 8  8         va_list ap;                              //在这里我们定义一个va_list类型的变量
 9  9         int i;                                 //在这里我们定义一个可以在下方循环使用的整型变量
10 10         double total = 0.0;                          //在这里我们定义一个浮点数保存所有的参数的和
11 11         va_start(ap, count);                         //在这里我们获得可变参数列表的第一个参数的地址,括号里面第一个参数是类型为va_list的指针,第二个参数是可变类型最左边的参数,此处是count
12 12   
13 13         for(i = 0; i < count; ++i) {  
14 14                 total += va_arg(ap, double);                //在这里我们返回可变的参数,括号里面第二个参数是你想要返回的参数类型
15 15         }
16 16     
17 17         va_end(ap);                                //在这里我们可以清空可变参数列表va_list
18 18         return total / count;
19 19 
20 20 }            

然后我们就可以在主函数中调用这些函数了,效果很不错

void main(int argc, char ** argv){
        printf("The value of avarage is %lg\n", average(3, 7.3, 9.5,8.5));    //结果为8.334
        printf("The value of avarage is %lg\n", average(2, 4.6, 5.4));        //结果为5
}

要记住,函数定义要放在主函数的前面,不然会出现C3861错误,今天就犯了这个错误。

有了这个函数,我们就可以传入不同个数的参数进行运算了,非常方便。

C++中,如果我们想要获取不确定个数的参数进入函数,就可以使用va_list类型的变量

标签:需要   ota   类库   列表   清空   argument   const   end   参数   

原文地址:http://www.cnblogs.com/ydzpcsy/p/6634770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!