main()函数是C应用程序的入口点,编译后的可执行文件都是从main函数开始执行的。在执行过程开始时,会执行main()函数,在main()函数执行完毕时,执行过程就结束了。
主函数main()可以有或没有参数列表,通常最多支持3个参数。
1.int main()
2.int main(int argc, char *argv[])
3.int main(int argc, char **argv)
4.int main( int argc, char *argv[] , char *envp[])
上述的1,2,3比较常用,第4种用法比较少见。
main()函数一般用int或者void形的。用int型定义main更好些,因为在结束的时候可以返回给操作系统一个值以表示执行情况。
下面介绍一下main函数各个参数的含义:
1.int argc
表示在命令行下输入命令的时候,一共有多少个参数。例如:
./test arg1 arg2
那么argc的值是3,命令名加上两个参数,一共三个参数。argc代表参数的数量, main()函数本身是在索引0为的第一参数。 所以, argc总是至少为1 。
2.char *argv[]
输入参数数组,真正的参数以字符串数组(即第2个参数argv[])的形式来传递。每一个字符串均有自己意思。argv[0]存放可执行程序本身。
例如:
./test
argc的值是1,argv[0]的值是 "test"
./test arg1 arg2
argc的值是3,argc[0]的值是"test",argc[1]的值是" arg1 ",argc[2]的值是" arg2"。
3.char *envp[]
相对来说用得比较少,它是用来取得系统的环境变量的。Envp是编译器扩展地语法,标准是不支持的,虽然现在很多编译器都支持,但是考虑到程序的移植性更好,进行避免使用。要获得环境变量的值还是用getenv比较好。
由于main函数不能被其它函数调用, 因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。
Aucun commentaire:
Enregistrer un commentaire