void main()正确么?

void main()正确么?


 void main()正确么?这个提问有些让人摸不着头脑的样子,但这的确值得思考。见过很多种的main()函数风格,例如:void main(void)、int main(void)、int main(int argc, char** argv )、int main(int argc, char* argv[] )、int main(int argc, char* argv[], char*envp[] ),这些看起来都不一样,但都在某些场合下被人们所使用。
 main()函数是入口函数,这在有的人看来视乎是理所当然的常识。首先有一点,程序运行于操作系统下都需要入口函数,这入口函数是整个程序的开始。所以“main()是入口函数”这句话,更准确的来描述是,具有这种性质的函数就是入口函数(入口函数的函数名未必一定就是main),最关键一点就在于它由操作系统调用,操作系统要求在本系统下运行的程序要提供这种函数来给它调用。那么这就好理解了,在某一操作系统下,操作系统要求我们定义怎样的入口函数。那么这样就合乎理解了。关键不在于我们想怎样声明,而是操作系统要求我们怎样声明。
 但是怎样的声明才是真正符合的呢?见过各种类型的代码风格,甚至有的人在main()函数的结尾不使用return,而是直接exit的,对他们而言视乎是使用int main()或者void main()都没有区别的样子,但实际上并非如此,假设某一操作系统下,要求其运行的程序的入口必须为int main(int argc, char* argv[]),并且不支持int main(void),那么int main(int argc, char* argv[])便成了唯一正确的声明,如果在该系统下某一程序的入口设置为void main(void),那么很抱歉,操作系统并不能调用该程序的入口函数。
 最后,我个人相对来说还是比较喜欢用int main(void)格式定义入口函数(如果允许省略而我的程序又用不上参数的话),因为它比较常见,很多操作系统都支持。

猜你喜欢

转载自blog.csdn.net/smallerxuan/article/details/79288084
今日推荐