这里重点是讲一下命令行参数的处理,对于其中涉及的一些命令和术语不作深入解释,有兴趣的话请自行Google百度。
main函数的形式
main函数有三种形式,分别是
1 int main(),这是我们最常用的一种,表示main函数不带任何参数;
2 int main(int argc, char* argv[]) 或者 int main(int argc, char** argv),这也是常见的一种形式,其中argc是main函数接收的参数个数,argv[0]是正在运行的程序的名称,argv[1],...,argv[argc-1]是接收到的参数,argv[argc]是结束标志NULL;
3 int main(int argc, char* argv[], char* envp[]) 这种写法比较少见,其中第三个参数是环境变量。
下面分别用例子来说明一下第二和第三种用法。
例1
#include<stdio.h>
int main(int argc, char* argv[])
{
int i;
for(i=0;i<=argc;++i)
printf("argv[%d]=%s\n",i,argv[i]);
return 0;
}
例2
#include<stdio.h>
int main(int argc, char* argv[], char* envp[])
{
int i;
for(i=0;envp[i]!=NULL;++i)
printf("envp[%d]: %s\n",i,envp[i]);
printf("envp[%d]: %s\n",i,envp[i]);
return 0;
}
下面说一下这两个程序的运行方法。
Windows环境下:
最简单的方法就是ctrl+F5了,不过这样出来的结果并不能很好的说明情况,所以在这里我采用命令行的方法。
题外话:基本命令的使用
开始菜单 --> 运行 --> cmd ,出来命令行窗口。在提示符后输入
help
可以得到所有可用命令的简介。如果想详细查询某个命令的用法,输入
help 命令
即可。
首先得找到你的命令行编译器所在的位置。这里以VC2005为例介绍一下最基本的编译链接单个程序。如果想了解更多,可以在MSDN中搜索 How to: Compile a Native C++ Program from the Command Line
保存代码到一个文件test.c,为了便于讨论,我将文件放在D盘根目录下,也就是D:\test.c。然后选择VC2005的菜单中 tools --> Visual Studio 2005 Command Prompt,出来一个命令行窗口。
(1)在提示符后输入命令
d:
进入D盘。如果源文件在其他目录下可以参考一下cd的用法。
(2)生成目标文件.obj和可执行文件.exe:
cl /EHsc test.c
会在当前目录下生成test.obj和test.exe。
(3)最后就可以来测试我们的程序例1了:
test arg1 arg2 arg3
将会产生以下输出:
argv[0]=test
argv[1]=arg1
argv[2]=arg2
argv[3]=arg3
argv[4]=(null)
可以用同样的方法处理例2,不过不需要给例2参数。
Linux环境下:
首先得确认你装有GCC以及必需的文件(不知道的话出门左转,到Linux版问一下)。然后把文件保存为test.c,这里test.c放在桌面。
(1)打开终端,进入源文件所在的目录:
cd ~/Desktop
(注:桌面目录有可能是中文,那就是cd ~/桌面)
(2)生成可执行文件:
gcc test.c
将会在桌面生成一个名为a.out的可执行文件。
(3)测试程序:
./a.out arg1 arg2 arg3
得到相似的输出:
argv[0]=./a.out
argv[1]=arg1
argv[2]=arg2
argv[3]=arg3
argv[4]=(null)
例2同理。
--