关于主函数main()的参数问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 21:03:34
想了解一下主函数main()的参数问题,这个参数可以不利用主函数来获取吗?我想在另外的一个函数里获取这样的参数,该如何获取?
呵呵,谢谢,不过那种调用我是知道的!~我不想通过系统把这个参数赋给main()函数。比如,现在我想建立一个mfc单文档,因为在mfc单文档里没有main()函数,只用WinMain函数,但是我同样是想调用类似于main()函数里的那个参数,该如何做呢?

主函数的参数就是输入命令行的参数,主函数不能被其他函数调用

int main(int argc, char *argv[]);
int main(int argc, char **argv);
int main(void);

void main(int argc, char *argv[]);
void main(int argc, char **argv);
void main(void);

补充回答:
------------------------------------
WinMain()的第三个参数是LPSTR lpCmdLine,命令行参数
这个就相当于argv,需要自己解析出每个参数

主函数的参数就是输入命令行的参数,主函数不能被其他函数调用

但是,这个参数,可以传递给其他函数进行解析
我们完全可以利用主函数来获取命令行的参数,然后,由另外的函数,对这些参数进解析,处理的。

做法是,我们可以定义个类似的函数,比如:
int process(int argc, char *argv[])
{
//...//如何处理的,这里从略
}

在函数中可以调用它,把参数传递给它,如下:
int main(int argc, char *argv[])
{
//...//略去一些代码

process(argc,argv);//这样,就把主函数获取的参数,传递给我们自己定义的函数process了

//...//略去一些代码
}

补充下:

int main(int argc, char *argv[]); 中

argc表示参数的个数。例如,你编译的可执行文件为a.out,执行时在命令行输入 ./a.out p1, argc就是2,argv[0] = "a.out",argv[1] = "p1."