关于linux下gcc不支持void main()

在C++中绝对没有出现过void main(){/* ... */}这样的函数定义,在C语言中也是。

main 函数的返回值应该定义为int 类型,在C和 C++ 标准中都是这样规定的。在C99 标准中规定,只有以下两种定义方式是正确的:

 
 
  1. int main( void )  
  2. int main( int argc, char *argv[] ) 

在C++03中也给出了如下两种main函数的定义方式:
 
 
  1. int main()  
  2. int main( int argc, char *argv[] ) 

虽然在C和C++标准中并不支持void main(),但在部分编译器中void main()依旧是可以通过编译并执行的,比如微软的VC++。由于微软产品的市场占有率与影响力很大,因此在某种程度上加剧了这种不良习惯的蔓延。不过,并非所有的编译器都支持 void main(),gcc就站在了VC++的对立面,它是这一不良习气的坚定抵制者,它会在编译时就明确地给出一个错误。


具体请看http://book.51cto.com/art/201202/317558.htm

《编写高质量代码,改善c++程序的150个建议》这本书里的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值