关于C语言main函数
什么是main
在C语言中 main函数又叫主函数,是程序启动后第一个执行的函数
在C程序中不可缺少
main函数的几种形式
没有返回值,也没有参数 (c89)
1
main (){ }
通常这种写法只有旧的标准支持,使用现在的编译器则会默其返回值为int
这种声明方式不推荐,因为返回值是给系统的,返回空则系统就无法获取程序退出状态
1
void main () { }
虽然形参列表没有参数,但是没有声明为void,则main函数依旧可以获取参数
程序中其他自定义函数也一样
入参没有类型限制,也可以不传参数1
int main () { }
无参,程序就无法获取命令行参数, 如果入参则会报错
1
int main (void) { }
两个入参,第一个参数为命令行参数个数,第二个入参为命令行参数数组
入参的参数名可以自定义,不一定要下面示例中的名称1
int main (int argv, char *argc[]) { }
三个入参
1
int main (int argv, char *argc[], char *envp[]) { }
前两种参数和第五种一样,但是第三个参数通常为编译器扩展的一个参数
但是全局变量environ可以代替参数envp的作用,获取或设置环境变量可以使用getenv或putenv,所以使用这个扩展参数其实没有必要
总结
可以看到C语言中main函数的写法有很多种,但是现在的C标准中只支持两种
1 | int main (void) { } |
至于其他的写法要么是编译器扩展写法,要么就是历史遗留问题