如何在C中使用va_list迭代命令行参数

Man*_*pos 2 c command-line pointers command-line-arguments

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

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

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

eq-*_*eq- 8

你不能.va_list适用于varargs函数,但main不适用.但是,我想知道的是为什么你更喜欢这个(如果可能的话):

char *arg;
va_list vl;
va_start(vl, argc);
while ((arg = va_arg(vl, char*)))
    // use arg
va_end(vl);
Run Code Online (Sandbox Code Playgroud)

对此:

for (int i = 0; i < argc; ++i)
   // use argv[i]
Run Code Online (Sandbox Code Playgroud)

或这个:

for (char **arg = argv; *arg; ++arg)
   // use *arg
Run Code Online (Sandbox Code Playgroud)