如果我写一个这样的函数:
void myfunc(const int argc, const char *argv[])
argc和argv会自动从命令行参数中获取它们的值,还是需要从main传递它们的值?
答案 0 :(得分:3)
必须传递argc和argv,例如:
int main(int argc, char *argv[])
{
myfunc(argc, argv);
return(0);
}
答案 1 :(得分:3)
不,如果您调用函数的参数argc
和argv
,则不会发生任何特殊情况。调用者必须像任何其他参数一样传递它们。
答案 2 :(得分:1)
参数名称本身并不重要。你可以写这样的主要内容:
int main(int count, char *array[]) {...}
如果你愿意,可以。 main
是一个特殊函数,因为它是C程序的默认入口点,并且命令行参数值被传递给它,就是全部。
将函数声明/定义为:
void myfunc(int argc,char *argv[]) {...}
与:
完全相同void myfunc(int foo,char *bar[]) {...}
并且可以使用您喜欢的任何(可接受的)值从任何(可能的)点调用此类函数。