C 语言宏 va_arg 用于从可变参数列表中取出下一个参数,参数类型由第二个参数指定。
定义
type va_arg(va_list ap, type);va_arg 是 <stdarg.h> 中的宏,取出 ap 中的下一个参数并返回,类型由 type 指定。
用法
#include <stdio.h>
#include <stdarg.h>
void print_all(int n, ...) {
va_list args;
va_start(args, n);
for (int i = 0; i < n; i++) {
int val = va_arg(args, int);
printf("%d ", val);
}
va_end(args);
printf("\n");
}
int main() {
print_all(3, 1, 2, 3);
return 0;
}输出:
1 2 3注意事项
va_arg 取出的类型必须与调用时传入的类型一致,否则未定义行为。