| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1465 人关注过本帖
标题:高手指教。这句话怎么理解?
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:1 
理论,理论,边理边论。挺好

梅尚程荀
马谭杨奚







                                                       
2012-03-02 18:38
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
其实,这个main()的返回值问题,争论历史很悠久了,不光是这里,在别的编程论坛也大吵大闹过,从来没有定论。该表达的,表达过意见,就算了,争对错是没有用的。只是在我看来,坚持main()必须写int main(),否则就如何如何云云,这就未免过了。严谨不是拘谨,遵守某种东西,必须有充足的理由,法律条文本身就很多争议,不是一概去守的,既然不守也没有问题,自然不守者有不守的道理,如果完全无理,法规直接就禁止了,不至于打马虎眼。

C语言的标准,过于迁就流行代码,这一点是很多关于C编程的权威书籍中都有介绍的观点,也正是C++作者一直谋求废弃的东西,而C++之所以被人诟病,也因为是指它太兼容C的不良习惯。其实,同样的境况,在html和xhtml之间,也出现了,而且现实是到现在仍然没有统一的方向。

授人以渔,不授人以鱼。
2012-03-02 18:48
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
额……你阐述你的意见或见解就算了,不管你我的理解对不对,大家普遍过几天就忘了。
但是你如果想在最后下个结论那不应该说成:“意见说过就好了,坚持写return 0就坚持,void main()编译能通过也没问题。”
因为结论性的东西容易被大家记住,说的有歧义误导大家就不好了吧?

如果要下个结论,起码也应该是这样(我综合咱俩的意见下的,希望不会曲解的太多):
main 函数最好写成,int main(void) 或者 int main(int argc, char *argv[])
如果你的编译器允许你写 void main(),但如果你不是出于特殊需要,最好是改成 int main() { /* ... */ return 0; }

T版 很认真,对很多问题思考的也比较深。有很多值得我学习的地方。main 函数之争我确实没在其它地方见过。


[ 本帖最后由 pangding 于 2012-3-2 18:53 编辑 ]
2012-03-02 18:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我在CSDN就看见过,其中有御版参与,我看他们的记录,跳起五丈高都有,其中还提及之前反复争论的历史及恩怨,可见这个话题到处都有。

我不管别人如何写,在我的代码中,如果程序真有退出码,必定会写int main(……),即使main()中没有返回,但如果在别的模块和函数中有exit(),即使是exit(0),也写int main(……),如果完全没有这类东西,就写void main(……)。在一般正常的程序中,总会有return n或exit(n)的,因为错误检测是必备的手段,随时都会中断程序,这确实是很普遍的写法。只是在很小的案例式的程序中,真的没有必要强调这个。我说的是无需强调,不是说总是void main(),因此,前面一直说“看需要”。

更特异的情况,是如果我编写的程序,压根儿就不希望操作系统拿返回值来做什么,就拒绝返回值,让它得到随机行为,这正是所需要的效果。其实,在《C陷阱与缺陷》一书中,提到main()需要返回值,指的也是这个,作者说不返回值其实没什么害处,但如果需要操作系统关注程序的结果,才会造成麻烦。而这正是我前面一直在提到的,有这种需要,就返回,没有这种需要,就不需返回,正如那个作者说的:“只要该(垃圾)数值不被用到,就无关紧要。”(P.62)

[ 本帖最后由 TonyDeng 于 2012-3-2 19:32 编辑 ]

授人以渔,不授人以鱼。
2012-03-02 19:02
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:1 
回复 24楼 TonyDeng
什么时候的事情?? 有链接没?

我就是真命天子,顺我者生,逆我者死!
2012-03-02 19:04
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 25楼 BlueGuy
哪里会保留链接,在百度上偶然搜到的。去年11月份左右搜的吧,搜到的那个东西也没看是什么时候写的。

授人以渔,不授人以鱼。
2012-03-02 19:05
为了未来
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:26
专家分:20
注 册:2012-2-18
收藏
得分:1 
学习
2012-03-02 19:06
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
有御坂参与的事,我也很有兴趣。如果有人找到了链接,不妨发上来让我们领略一下大家们辩论的风采。
2012-03-02 20:30
快速回复:高手指教。这句话怎么理解?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024629 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved