在c中将多个参数传递给main

时间:2013-02-14 06:03:14

标签: c arguments gnu

int main(int argc, char *argv[])    // Send the path as a parameter
{
    char ptr2[BUFSIZE]; 
    va_list list;
    va_start(list,argv[]);
}

假设我得到了这段代码,如果我在这个主要版本中得到多个参数(比如我做“./program car house student phone”之类的东西),他们每个人都会有不同的论点,我怎么把他们在va_list上?

我不知道我会收到多少论据,但我需要把它放在va_list上,请帮忙!谢谢!

1 个答案:

答案 0 :(得分:2)

没有可移植的方法来做到这一点。但是,您可以通过编写类似

的内容将初始化的va_list向下传递到另一个函数va_list
va_list args;
va_start(args, argv); // or maybe argc? Whatever, this doesn't make sense anyway
// read: "please don't litter production code with UB"
call_the_function(foo, args);
va_end(args);

顺便说一下:

  

我不知道我将收到多少论据。

这不是真的 - 这就是argc的{​​{1}}参数的用途。