linux 不报警的hello world

以前都是在VC ++ 6.0下。自己用的这个是从电脑城花5元买的,跟微软的价格一比,简直没法比:(

vc下这样写:

 

是不会提示警告的。但是放到Gcc环境里面就难说了

测试环境:Centos 5.5  Final  ,gcc  4.1.2。

vim  test.c后,保存

cc -Wall  test.c  -o  test 

./test后,提示

 

警告:‘main’ 的返回类型不是 ‘int’

既然返回的不是int,那把void去掉好了。

这下子好,一个警告变成两个警告了:(

test.c:3: 警告:返回类型默认为 ‘int’
test.c: In function ‘main’:
test.c:5: 警告:在有返回值的函数中,控制流程到达函数尾
把原来void地方改成  int  ,再执行:cc -Wall  test.c  -o  test 。

现在变成一个警告了,但是还有警告:(。具体提示如下:

test.c: In function ‘main’:
test.c:5: 警告:在有返回值的函数中,控制流程到达函数尾
现在个人对于“控制流程达到函数尾”的理解就是:一辆M1A2撞到了墙上,但是还在继续向向前开的感觉。

为了解决这个警告,让程序掉个头。添上一句:return ;

再次编译。提示如下:

test.c: In function ‘main’:
test.c:5: 警告:在有返回值的的函数中,‘return’ 不带返回值

既然说没返回值,那给个就好了。return  0  。至于为什么是0,不知道。我试过return 1.也正常执行。等待高手的解答吧。

这样几次碰壁之后所形成的最终代码格式为:

后记:这样的过程主要是想找到标准的C语言的格式写法。不能换个编译环境就要换写法,感觉很不好:(

有人推荐看看《The  C  Programming Language 》。满意以为可以找到答案,但是里面的写法还是不合适。我是参考的第二本,从网上找的PDF。字体倒是挺清晰,可是问题还是没解决:(

书上是这样写的:

 

 

 

编译时使用了cc  hello.c。我据此判断使用的Gcc的环境。但是没指名Gcc的版本。在我这边的Gcc4.1.2里面编译这个代码的时候提示:

 

[cike@localhost C_xuexi]$ cc -Wall a.c
a.c:3: 警告:返回类型默认为 ‘int’
a.c: In function ‘main’:
a.c:5: 警告:在有返回值的函数中,控制流程到达函数尾
不知道是编译器版本的问题,还是其他的。总之,因为没发现一个标准的C语言的格式是件很郁闷的事情。如果你正在此文,有任何想法欢迎留言:)O(∩_∩)O谢谢

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值