C语言实现函数可变参数

阳光穿透心脏的1/2处 2023-06-15 11:12 190阅读 0赞

要实现可变参数,需要包含一个头文件:stdarg.h 。这个头文件中包含四个量:-va_list,-va_start,-va_arg,-va_end。va指的是variable argument(可变参数)。

首先声明一个可变参数函数,我们以sum(),对不同个数的数字求和为例。这个函数的第一个参数是 int n,表示参数的个数。第二个参数是三个点 用来占位告诉编译器后面还有若干个参数。所以是这样的 int sum(int n,…)。

在这个函数中用 :va_list 类型来声明参数列表;

va_start()函数来打开可变参数列表 ;

va_arg() 获取可变参数列表中的参数;(函数的第二个参数要指明可变参数的类型)

va_end()函数来关闭可变参数列。

具体使用代码:

  1. #include<stdio.h>
  2. #include<stdarg.h>
  3. int sum(int n,...);
  4. int sum(int n,...)
  5. {
  6. int i,sum = 0;
  7. va_list vp;
  8. va_start(vp,n);
  9. for(i=0;i<n;i++)
  10. {
  11. sum += va_arg(vp,int);
  12. }
  13. va_end(vp);
  14. return sum;
  15. }
  16. int main()
  17. {
  18. printf("%d",sum(3,1,2,3));
  19. return 0;
  20. }

结果:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JpbmdvY29kZXI_size_16_color_FFFFFF_t_70

发表评论

表情:
评论列表 (有 0 条评论,190人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C++可变参数函数

    什么是可变形参函数   在c++编程中,有时我们需要编写一些在源代码编写阶段无法确定参数个数,有时甚至无法确定参数类型的函数。   例如,一个求和函数。可以通过重载实现

    相关 C/C++可变参数函数

    可变参数的函数,即函数的参数个数和参数类型不完全确定的函数。这类函数最常见的就是printf、scanf函数。在C/C++中,为了通知编译器函数有可变参数,必须以三个点结束该函

    相关 C语言可变参数

    C语言可变参数可以使用宏函数取出,宏函数在头文件stdarg.h中。 贴出如下简单的代码,博客转载自: [https://www.cnblogs.com/edver/p/84