前言
main函数是程序启动后执行的第一个函数。从开始学习C语言到现在,我们似乎看到了很多个版本的main函数,那么哪一种才是正确的呢?我们先来看看目前有哪些版本。
main函数版本
第一种,没有返回值,没有入参:
main()
在C89标准中,这种写法是可以接受的,但使用现在的编译器编译时,会报告警,并且会将其返回值默认为int。实际上,如果函数没有显式声明返回类型,那么编译器会将返回值默认为int。
第二种,返回值为void,没有入参:
void main()
这种形式的来源不得而知。但是为何这么多初学者使用?main函数的返回值最终会作为程序的退出状态,而一旦声明为void,在程序退出后,想要获取其退出状态也就不可以了。因此不建议其返回值为void。
第三种,返回值为int,参数为void:
int main(void)
这是常见的一种写法。形参为void,表明它在调用的时候不能传入任何参数,那么它也就不能获取命令行参数了。
第四种,返回值为int,没有参数:
int main()
看起来似乎和第三种没有什么区别,但这种形式却有些许不同。虽然它的声明没有入参,实际调用却可以传入参数,看下面的例子: