变参函数
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 }