2

我正在尝试用 C++ 编写一个 v8 模块;在那里,函数在数组中接收可变数量的参数。我想获取那个数组并调用一个函数gettextprintf它接收一个格式化的字符串,它是必要的参数。问题是,如何获取一个数组并将元素作为参数发送给其中一个函数?

在python中,我会做这样的事情:

def the_function(s, who, hmany): print s%(who, hmany)

the_args = ["Hello, %s from the %d of us", "world", 3]
the_function(*the_args)

那如何在 C++ 中实现呢?(我正在使用 v8 和 node.js,所以在这些命名空间中的某个地方可能有一个我不知道的函数或类)

4

1 回答 1

2

这是一种方法:

void foo(const char *firstArg, ...) {
    va_list argList;
    va_start(argList, firstArg);

    vprintf(firstArg, argList);

    va_end(argList);
}

假设您正在尝试执行 printf。基本上,va_list 是关键,您可以使用它来检查参数,或将它们传递给其他采用 va_list 的函数。

于 2010-09-08T03:08:21.673 回答