主题:求助!
牛欢笑!
[专家分:0] 发布于 2011-08-29 21:43:00
[em10]哪位讲解下主函数main的那两个参数是怎么的,谢谢!
回复列表 (共3个回复)
沙发
eastcowboy [专家分:25370] 发布于 2011-08-29 23:06:00
那是用于处理“命令行参数”的。
比如一个程序名字叫my.exe,我在命令行输入my.exe 111 222 aa,然后回车,那总共就有四个参数——第一个参数是程序的名字“my.exe”,第二个参数是“111”,第三个参数是“222”,第四个参数是“aa”。
main函数的两个参数,第一个是“命令行参数的个数”,如果是上面所举的那个例子,则它的值为4。第二个是一个数组,记录了每个参数的具体内容。
int main(int argc, char* argv[])
{
// argc的值是4
// argv[0]的值是"my.exe"
// argv[1]的值是"111"
// argv[2]的值是"222"
// argv[3]的值是"aa"
}
板凳
a296094284 [专家分:0] 发布于 2011-08-30 08:33:00
受教了,我想问下这两个参数一般在什么情况下用
3 楼
windy0will [专家分:2300] 发布于 2011-08-30 20:36:00
[quote]
受教了,我想问下这两个参数一般在什么情况下用[/quote]
有时候这两个参数很有用:
windows系统盘里的windows/system32文件夹里面的很多 .exe 程序运行时都要带参数
如 del *.o *.exe // argc=3 argv[0]=del argv[1]=*.o argv[2]=*.exe
copy.exe src obj // argc=3 argv[0]=copy.exe argv[1]=src argv[2]=obj
还有,基本上所有的编译器,解释器都是这样的程序。
如 VC的cl.exe : cl /Ot /Wall foo.c //编译foo.c
GCC的gcc.exe : gcc -O -Wall foo.c //编译foo.c
GHC的runghc.exe: runghc foo.hs //运行脚本foo.hs
ghc.exe: ghc -o foo.exe foo.hs //把foo.hs编译成2进制foo.exe
....
对于这些参数,微软的好像都是用 '/'领头, 如 /Ot /Wall
一般的开源软件,都是以 '-'领头,(以1个-的叫短格式,2个-的叫长格式)
-V, --version 一般都用来显示版本信息
--help=warning gcc这个参数可以用来显示所有和warning有关的信息
我来回复