参数数量可变函数(小结笔记)
知识点:头文件#include<stdarg.h>的导入,va_list parg的声明,声明后要有开始va_start(parg,...)以及结束va_end(parg)
通常写一个自定义函数实现某个功能时,这里用加法举例:
int add(int a,int b)
{
return a + b;
}
这里函数的参数是固定的两个,实现a,b的相加,如果是3个参数相加,还要定义一个参数c,如果是n个参数,那么要定义到参数n
定义如下函数:
int fun(int a,...)
{
}
参数数量可变函数的优点就在这里,只需要定义一个参数,这个参数用来存放后续添加参数的个数,后面用省略号来表示后续需要添加的参数
如果想要使用该函数,需要导入<stdarg.h>的头文件,并且在函数内部进行声明
通过vs_list parg进行声明,这里的vs_list是用宏定义的char*类型,也就表明定义的parg只能存储char型变量
定义完毕后导入vs_start(parg,x)函数,意为parg读取x后的下一个参数,这里x为实参的后续参数个数
如果需要把char类型转为其他类型则需要调用va_arg(parg,xxx)//xxx为需要转换类型:int float,double...
此外调用结束后要在函数内部进行结束的声明vs_end(parg)
自定义函数结束后,需要在主函数中给予实参
fun(5,0,1,2,3,4)//5为后续添加的参数个数
代码实操:


浙公网安备 33010602011771号