在C语言的stdarg.h,可以帮助程序员实现对任意自定义函数传递任意数量个参数的想法。
其步骤可分为如下几步:
VMware上的例程test1.c如下图:
如上图所示例程,其输出结果为
程序解读为:自定义函数prt可根据num值得多少来定义主程序在调用该函数时,在参数num后,可传输几个实参。va_list定义的list变量,自动将num之后传输的实参变量,自动保存在列表变量list中。通过调用va_start()来告诉C系统要操作的可变列表变量为list,以及它其中所包含的变量数。通过调用va_arg()来实现类似于反向出栈(队列)一样的操作,将最先压进List的数据最先取出,以此类推,va_arg()的第二参数,则指明了取出的数据所返回的类型,最后通过printf打印出结果,最后通过va_end来销毁所创建的list变量内存。