argc 和 argv 用于除 main 以外的函数
Posted
技术标签:
【中文标题】argc 和 argv 用于除 main 以外的函数【英文标题】:argc and argv for functions other than main 【发布时间】:2017-09-29 11:13:33 【问题描述】:如果我写一个这样的函数:
void myfunc(const int argc, const char *argv[])
argc 和 argv 会自动从命令行参数中获取它们的值,还是需要从 main 中传递它们的值?
【问题讨论】:
它必须故意传递给函数。例如myfunc(argc-1, argv+1);
只有 main() 从命令行获取值。
Access command line arguments without using char **argv in main的可能重复
【参考方案1】:
argc和argv必须传,如:
int main(int argc, char *argv[])
myfunc(argc, argv);
return(0);
【讨论】:
【参考方案2】:不,如果您调用函数的参数argc
和argv
,没有什么特别的事情发生。调用者必须传递它们,就像任何其他参数一样。
【讨论】:
【参考方案3】:参数名称本身并不重要。你可以这样写main:
int main(int count, char *array[]) ...
如果你喜欢。 main
是一个 特殊 函数,因为它是 C 程序的默认入口点,并且命令行参数值被传递给它,仅此而已。
将函数声明/定义为:
void myfunc(int argc,char *argv[]) ...
完全一样:
void myfunc(int foo,char *bar[]) ...
并且可以从您喜欢的任何(可能的)点使用您喜欢的任何(可接受的)值调用这样的函数。
【讨论】:
以上是关于argc 和 argv 用于除 main 以外的函数的主要内容,如果未能解决你的问题,请参考以下文章
int main(int argc,char* argv[]) 解析
int main(int argc, char* argv[]) 和 int main(int argc, char** argv) [关闭]