2

所以我发现自己希望我可以用 va_list 遍历命令行参数,我相信我已经看到它在某个地方完成了。

我试过谷歌搜索无济于事。

有谁知道如何实现这一目标或知道是否可以实现?

4

2 回答 2

8

你不能。va_list适用于可变参数函数,但事实main并非如此。但是,我想知道的是您为什么更喜欢这个(如果可能的话):

char *arg;
va_list vl;
va_start(vl, argc);
while ((arg = va_arg(vl, char*)))
    // use arg
va_end(vl);

对此:

for (int i = 0; i < argc; ++i)
   // use argv[i]

或这个:

for (char **arg = argv; *arg; ++arg)
   // use *arg
于 2012-08-17T16:36:29.437 回答
-1

http://www.cplusplus.com/reference/clibrary/cstdarg/va_start/

这不适用于命令行参数。

于 2012-08-17T16:29:58.900 回答