建议0 不要让main函数返回void

来源:互联网 发布:js动态生成html页面 编辑:程序博客网 时间:2024/05/03 17:59
 

   有一点很明确,在C/C++中从来没有定义过void main这样的代码形式,C++之父Bjarne Stroustrup 在他的主页FAQ中明确写着这样一句话:

在C++中绝对没有void main 这样的函数定义,在C中也是。

   由于,微软产品的市场占有率和影响力很大,同时,其编译器VC++纵容void main这种形式的编程,因此在某种程度上,加剧了这种不良习气的蔓延。

但是,不是所有的编译器,都支持void main。例如GCC,因此,在软件移植性上建议不使用void main 型。同时,还有很多老版本的C,支持main这种形式,

之所以支持,是因为在第一版的C语言中,只有int数据类型,并不存在char,long,float,double等这些内置数据类型。既然只有int型,也就不必显示的为main函数

标明返回类型了。后来,C的数据类型进行了扩充,为了能兼容以前的代码,规定, 不明确表明返回值的,默认返回值为int

  最后,在main函数中,return语句的作用在于离开main函数(析构掉所有具有动态生存时间的对象),并将其返回值作为参数来调用exit函数,如果执行到结尾而没

有遇到return语句,其效果等价于执行了return 0

  也就是做如果没有遇到return语句,编译器为你隐式的加上return 0

这个规则,只使用于main函数。且函数返回类型是int

请记住:

要想保证程序有良好的可移植性,就要标明main函数返回int,且加上return 0

原创粉丝点击