变参函数
实现可变参数max_int,从若干个传入的参数返回最大值。
int max_int(int a,…);
- 如何获得a往后的参数列表? va_list 类型的变量
- 如何定位a后面第一个参数的位置? va_start函数
- 如何获取下一个可变参数列表中的参数? va_arg函数
- 如何结束整个获取可变参数列表的动作? va_end函数
#include <stdio.h>
#include <stdarg.h>
int max_int(int num,...)
{
va_list arg; //定义一个代表参数列表的变量
va_start(arg,num); //初始化参数列表
int max=0;
while(num--) //循环读入num个参数,取出其中的最大值,放到ans变量中
{
int temp=va_arg(arg,int);
if(temp>max)
{
max=temp;
}
}
va_end(arg); //销毁参数列表
return max;
}
int main()
{
printf("MAX is %d",max_int(5,1,6,9,7,4));
return 0;
}