在c中向main传递多个参数
假设我得到了这段代码,如果我在这个main中得到了多个参数(比如我做了类似“/program car house student phone”的事情),它们中的每一个都是不同的参数,我如何将它们放在va_列表中在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
我不知道我会收到多少争论,但我需要把它放在一个列表上,请帮忙!谢谢 没有便携的方法可以做到这一点。但是,您可以通过编写以下内容将初始化的
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);