变参函数

  1.实现可变参数max_int,从若干个传入的参数中返回最大值。

    int max_int(int n, ...);

  如何获得a往后的参数列表?                     va_list类型的变量

  如何定位a后面第一个参数的位置?      va_start函数

  如何获取下一个可变参数列表中的参数?   va_arg函数

  如何结束整个获取可变参数列表的动作?   va_end函数

 1 /*************************************************************************
 2     > File Name: 7.max_int.c
 3     > Author: yudongqun
 4     > Mail: qq2841015@163.com
 5     > Created Time: Sat 14 Nov 2020 06:30:06 PM CST
 6  ************************************************************************/
 7 #include <stdio.h>
 8 #include <inttypes.h>
 9 #include <stdarg.h>
10 //从若干个参数中,求前n个数中最大的一个
11 int max_int(int n, ...) {
12     int ans = INT32_MIN;//32位整型最小值
13     va_list arg;
14     va_start(arg, n);
15     while (n--) {
16         int temp = va_arg(arg, int);//
17         if (temp > ans) ans = temp;
18     }
19     va_end(arg);
20     return ans;
21 }
22 
23 int main(void) {
24     printf("%d\n", max_int(3, 1, 5, 10));
25     printf("%d\n", max_int(2, 1, 3));
26     printf("%d\n", max_int(6, 1, 3, 5, 7, 13, 15, 17));
27     return 0;
28 }

 

posted @ 2020-11-14 20:00  ydqun  阅读(160)  评论(0编辑  收藏  举报