我有一个程序可以接受命令行参数,我想从一个函数访问用户输入的参数。如何将*argv[]
从int main( int argc, char *argv[])
传递给该函数?我对指针的概念并不熟悉,*argv[]
对我来说看起来有点太复杂了。
我的想法是通过将我想要对参数做的所有工作移动到库文件,使我的main
尽可能干净。当我设法在main
之外掌握它们时,我已经知道我必须对这些论点做些什么。我只是不知道如何让他们到那里。
我正在使用GCC。 提前谢谢。
答案 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)
只需将argc
和argv
传递给您的函数。
答案 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 );
}