参数数量可变函数(小结笔记)

知识点:头文件#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为后续添加的参数个数

代码实操:

 

 

posted @ 2021-05-13 20:50  Y4n9  阅读(166)  评论(0)    收藏  举报