有没有办法从头开始创建一个 va_list
?我想调用一个以 va_list
作为参数的函数:
func(void **entry, int num_args, va_list args, char *key);
...从不接受可变数量参数的函数中获取参数。我能想到的唯一方法是创建一个中介函数,接受可变数量的参数,然后将它的va_list传递下去,这种做法相当愚蠢:
void stupid_func(void **entry, char *key, int num_args, ...) {
va_list args;
va_start(args, num_args);
func(entry, num_args, args, key);
va_end(args);
}
有更好的方法吗?我无法更改func
的参数。