C语言中的可变参数介绍

嵌入式技术

1372人已加入

描述

  有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数。C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数。下面的实例演示了这种函数的定义。 intfunc(int, 。.. ) { 。 。 。 }intmain() { func(2, 2, 3); func(3, 2, 3, 4); }

  函数

  #include《stdio.h》

  #include《stdarg.h》doubleaverage(intnum,。..)

  { va_listvalist;

  doublesum = 0.0;

  inti; /* 为 num 个参数初始化 valist */

  va_start(valist, num); /* 访问所有赋给 valist 的参数 */

  for(i = 0; i 《 num; i++) {

  sum += va_arg(valist, int); } /* 清理为 valist 保留的内存 */

  va_end(valist);

  returnsum/num; }intmain() { printf(“Average of 2, 3, 4, 5 = %fn”, average(4, 2,3,4,5));

  printf(“Average of 5, 10, 15 = %fn”, average(3, 5,10,15)); } 当上面的代码被编译和执行时,它会产生下列结果。应该指出的是,函数 average() 被调用两次,每次第一个参数都是表示被传的可变参数的总数。省略号被用来传递可变数量的参数。

  Average of 2,3,4,5=3.500000Average of 5,10,15=10.000000

  审核编辑

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分