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

Ete*_*ght 17 c pointers command-line-arguments

我有一个程序可以接受命令行参数,我想从一个函数访问用户输入的参数.如何传递的*argv[],从int main( int argc, char *argv[])那个函数?我对指针的概念不熟悉,*argv[]看起来有点过于复杂,我无法自己解决这个问题.

我的想法是main通过将我想要对参数执行的所有工作移动到库文件来尽可能保持干净.当我设法把它们拿到外面时,我已经知道我要对这些论点做些什么main.我只是不知道如何让他们到那里.

我正在使用GCC.提前致谢.

Fre*_*Foo 27

只需编写一个函数

void parse_cmdline(int argc, char *argv[])
{
    // whatever you want
}
Run Code Online (Sandbox Code Playgroud)

在调用mainparse_cmdline(argc, argv).没有魔法涉及.

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

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

parse_cmdline(argc - 1, argv + 1);
Run Code Online (Sandbox Code Playgroud)

  • 当argv定义为const char*argv []时怎么样?这就是OS X的原因,我不能完全改变Apple的ABI ...... (3认同)