C基础知识(12):可变参数
Posted Storm_L
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C基础知识(12):可变参数相关的知识,希望对你有一定的参考价值。
该功能需要使用<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):可变参数的主要内容,如果未能解决你的问题,请参考以下文章