Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c中向main传递多个参数_C_Arguments_Gnu - Fatal编程技术网

在c中向main传递多个参数

在c中向main传递多个参数,c,arguments,gnu,C,Arguments,Gnu,假设我得到了这段代码,如果我在这个main中得到了多个参数(比如我做了类似“/program car house student phone”的事情),它们中的每一个都是不同的参数,我如何将它们放在va_列表中 我不知道我会收到多少争论,但我需要把它放在一个列表上,请帮忙!谢谢 没有便携的方法可以做到这一点。但是,您可以通过编写以下内容将初始化的va_列表向下传递给另一个使用va_列表的函数 int main(int argc, char *argv[]) // Send the path

假设我得到了这段代码,如果我在这个main中得到了多个参数(比如我做了类似“/program car house student phone”的事情),它们中的每一个都是不同的参数,我如何将它们放在va_列表中


我不知道我会收到多少争论,但我需要把它放在一个列表上,请帮忙!谢谢

没有便携的方法可以做到这一点。但是,您可以通过编写以下内容将初始化的
va_列表
向下传递给另一个使用
va_列表
的函数

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

我不知道我会收到多少争论


这不是真的-这就是
main()
argc
参数的作用。

出于好奇,为什么需要这样做?我很确定标准C没有提供任何方法。argc给出了正确的计数?那么问题出在哪里呢?我真的看不出为什么有人会想这么做,或者甚至没有理由一开始就使用变量参数函数。闻起来像是纯粹的混淆。让va_开始(args,argc)或者va_list args=(va_list)args@Akisuikonen说得对,但我怀疑这是一种未定义的行为。
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);