一、参数形式
(1)int main()
(2)int main(void)
(3)int main(int, char**)
(4)int main(int, char*[])
(5)int main(int argc, char **argv)
(6)int main(int argc, char *argv[])
(7)int main( int argc, char *argv[], char*envp[])
(8)void main(void)
通常适用main函数形式:int main(),也就是不带参数的,ANSI-C(C89/C99)发布的主要形式为:
int main(void)
int main(int argc, char **argv) == int main(int argc, char *argv[])
其中第一个参数argc表示运行程序传递给main函数的命令行参数总个数,参数与参数之间用空格分开,包括可执行程序的名称,也就是argc最小值为1,只有一个程序名称;
第二个参数是一个字符串数组,用来存放指向字符串参数的指针数组,每个元素指向一个命令行参数,数组下标元素从0开始,argv[0]存放的是可执行程序名称,argv[1]和argv[2]分别存放第二个命令行参数和第三个命令行参数。
int main(int argc, char *argv[], char *envp[]),不经常使用,前两个参数表示同上,第三个参数存放的是运行时的环境变量。
二、注意点
main函数不能内部被其他函数调用,它是程序的入口,那么是如何把参数赋值给main函数呢,主要是通过调用执行等,系统或编译器传递给main函数。
三、用途
可通过给main函数传参,做一些自定义的操作,比如设置日志路径、日志等级、获取程序版本号、程序以守护进程运行等,类似于程序初始化读取的配置文件。
用c++编写一些linux的命令工具等。