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

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

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

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

只需编写一个函数

 void parse_cmdline(int argc, char *argv[]) { // whatever you want } 

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

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

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

 parse_cmdline(argc - 1, argv + 1); 

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

 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 ); }