C 标准库 - <stdarg.h>

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 取出的类型必须与调用时传入的类型一致,否则未定义行为。