argc和argv用于main以外的函数

时间:2017-05-02 02:44:20

标签: c function main argv argc

如果我写一个这样的函数:

void myfunc(const int argc, const char *argv[]) 

argc和argv会自动从命令行参数中获取它们的值,还是需要从main传递它们的值?

3 个答案:

答案 0 :(得分:3)

必须传递argc和argv,例如:

int main(int argc, char *argv[])
   {
   myfunc(argc, argv);
   return(0);
   } 

答案 1 :(得分:3)

不,如果您调用函数的参数argcargv,则不会发生任何特殊情况。调用者必须像任何其他参数一样传递它们。

答案 2 :(得分:1)

参数名称​​本身并不重要。你可以写这样的主要内容:

int main(int count, char *array[]) {...}
如果你愿意,可以。 main是一个特殊函数,因为它是C程序的默认入口点,并且命令行参数值被传递给它,就是全部。

将函数声明/定义为:

void myfunc(int argc,char *argv[]) {...}

与:

完全相同
void myfunc(int foo,char *bar[]) {...}

并且可以使用您喜欢的任何(可接受的)值从任何(可能的)点调用此类函数。