如何将main的* argv []传递给函数?

时间:2011-10-24 22:39:57

标签: c pointers command-line-arguments

我有一个程序可以接受命令行参数,我想从一个函数访问用户输入的参数。如何将*argv[]int main( int argc, char *argv[])传递给该函数?我对指针的概念并不熟悉,*argv[]对我来说看起来有点太复杂了。

我的想法是通过将我想要对参数做的所有工作移动到库文件,使我的main尽可能干净。当我设法在main之外掌握它们时,我已经知道我必须对这些论点做些什么。我只是不知道如何让他们到那里。

我正在使用GCC。 提前谢谢。

3 个答案:

答案 0 :(得分:26)

只需编写

等功能即可
void parse_cmdline(int argc, char *argv[])
{
    // whatever you want
}

并在main中将其称为parse_cmdline(argc, argv)。没有任何魔法。

实际上,您并不需要传递argc,因为argv的最终成员保证是空指针。但是既然你有argc,你也可以通过它。

如果函数不需要知道程序名称,您也可以决定将其称为

parse_cmdline(argc - 1, argv + 1);

答案 1 :(得分:1)

只需将argcargv传递给您的函数。

答案 2 :(得分:0)

SomeResultType ParseArgs( size_t count, char**  args ) {
    // parse 'em
}

或者...

SomeResultType ParseArgs( size_t count, char*  args[] ) {
    // parse 'em
}

然后......

int main( int size_t argc, char* argv[] ) {
    ParseArgs( argv );
}