企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
C语言的可变参数解析需要包含头文件:#include <stdarg.h>,直接上例子,我们实现一个加法函数add,用来求和: ![](https://img.kancloud.cn/94/f4/94f4a606ddd82dbb6d00ee0828d8560a_832x628.png =600x) ### >[info] add第一个参数n,表示可变参数的长度,有几个地方说明下: > va\_list 为可变参数类型。 > va\_start 是一个宏,计算起始地址。 > va\_end 是一个宏,计算结束地址。 > va\_arg 是一个宏,它返回当前取值指针指向的参数值并将取值指针指向形参列表的下一个参数的首地址。 ### 结果如上图,基本是固定的,我们通过va\_arg拿出可变参数的每个数据,然后进行加法运算。 ### main函数中调用的不是函数add,而是宏ADD,这里主要是说明宏如何进行可变参数的处理,可以用\_\_VA\_ARGS\_\_来表示可变参数。 ### 编译运行: ![](https://img.kancloud.cn/c5/ca/c5caf22eb7bf8955107084b74de64403_832x252.png =600x)