在c语言中通过定义一下形式的函数来定义可变参数,函数的最后一个参数写出…,定义可变参数需要引入头文件,需要使用如下几个宏,首先定义变参列表va_list,然后使用va_start()宏初始化,第一个参数为变参列表,第二个指向变参列表前一个参数,然后使用va_arg宏来获得变参列表中的每个值,第一个参数是变参列表,第二个是想要返回的类型,如int,最后使用完毕之后用va_end宏结束。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #include <stdio.h> #include <stdlib.h> #include <stdarg.h>
void foo(int num, ...) { va_list valist;
va_start(valist, num);
for(int i = 0; i < num; ++i) { printf("%d\n", va_arg(valist, int)); } va_end(valist); } int main() { foo(5, 1, 2, 3, 4, 5); return 0; }
|