标题:[分享]高手关于GOTO语句的精辟见解
只看楼主
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
结帖率:100%
 问题点数:0 回复次数:14 
[分享]高手关于GOTO语句的精辟见解

我本人由于是搞单片机的, 常用汇编, 总是在指令里跳来跳去,
因此对于类似的跳转语句GOTO一向都不排斥(虽然我用高级语言时从没用过GOTO).
不过看了林博士的讲解, 令我对GOTO的理解又深了一层..实在获益匪浅.

摘自<<高质量C、C++编程指南>> 作者:林锐 博士

作者简介:
林锐,2000年获浙江大学计算机应用博士学位。大学期间两度被评为中国百名跨世纪优秀大学生,1996年获电子工业部科技进步二等奖,1997年获首届中国大学生电脑大赛软件展示一等奖。2000年7月加入上海贝尔有限公司,从事软件工程和CMM/CMMI研究与推广工作,出版著作三部,2003年7月当选为Alcatel集团技术委员会会员。2004年创建上海漫索计算机科技有限公司。

自从提倡结构化设计以来,goto 就成了有争议的语句。首先,由于goto 语句可以
灵活跳转,如果不加限制,它的确会破坏结构化设计风格。其次,goto 语句经常带来错
误或隐患。它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句,例如:
goto state;
String s1, s2; // 被goto 跳过
int sum = 0; // 被goto 跳过

state:

如果编译器不能发觉此类错误,每用一次goto 语句都可能留下隐患。
很多人建议废除C++/C 的goto 语句,以绝后患。但实事求是地说,错误是程序员自
己造成的,不是goto 的过错
。goto 语句至少有一处可显神通,它能从多重循环体中咻
地一下子跳到外面,用不着写很多次的break 语句; 例如
{ …
{ …
{ …
goto error;
}
}
}
error:

就象楼房着火了,来不及从楼梯一级一级往下走,可从窗口跳出火坑。所以我们主
张少用、慎用goto 语句,而不是禁用。

[此贴子已经被作者于2007-6-17 10:47:31编辑过]

搜索更多相关主题的帖子: GOTO 语句 见解 分享 
2007-06-16 22:02
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
得分:0 
没想到你是搞单片机的,以后要向你请教了.现在往嵌入式发展很有钱途.

很多书上只是说goto不能滥用,没有说不能用.菜刀锋利切菜快,切手指也快,功能强大的东西往往容易造成大的破坏,就看使用者的驾驭能力.
2007-06-16 22:16
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
c( ̄? ̄)a" 我讨厌~~Infinite电路板~~~
呵呵...我看过野比个性签名,也想到了七分你是搞单片机的了,果然!

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-06-16 22:23
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
得分:0 
呵...其实说实话..搞底层很苦..钱还少..有"钱"途是没错, 可是你要做不到系统层就没啥可分的了..

我记得以前读书时老师给我们灌输的是"实力不够就不要用GOTO", 所以"你们以后就别用GOTO了"....
真是想看看R&K, BS, Gates这帮老家伙听到这话的反应...
Gates可是让GOTO走进千家万户的"罪魁祸首"之一啊...(笑)

女侠,约吗?
2007-06-16 22:40
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
我个人认为呢.为别人打工一定是苦的了,如果在研究所搞研究那才是乐事(不以完成任务的时间期限作为条件的那种).

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-06-16 22:46
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
得分:0 
回复:(ioriliao)我个人认为呢.为别人打工一定是苦的...

兄弟, 你还没开始工作吧? ..你说的那种情况, 基本只能在学校里看到..
而且还是一帮激情小子自己搞业余的... 真正的课题都是有时限的.. 任务只能"延期", 而不能"无限期".
在公司有老板, 在研究所有领导.. 命苦不能怪政府..怎么都逃不掉的.
只有努力干活, 表现良好才有好果子吃..才能分到一碗稀饭喝喝..


女侠,约吗?
2007-06-16 22:58
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
呵呵,野比兄果然经历丰富,从我的言语中就可以看出我还没有工作.
我想过了,我不会从事软件开发的这行业,确切地说,我是不会去任何
软件公司工作,或者言之过早,生活所迫我想也会的.我希望做一名教师,
因为只有
老师才很有空的,作为一名业余的程序员就行了,我想,或者只有业余
的程序员才不会业余吧.呵呵...我喜欢自由自在地搞研究.还望野比多
多指教!

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-06-16 23:10
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
得分:0 
给别人干活就逃脱不了被疯狂压榨剩余价值的命运.有能力去外企或出国,可以看到真正的社会主义.

兄弟你具体做什么,IC的设计还是写驱动还是其它?
2007-06-16 23:17
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
不想给别人压榨剩余价值,自己就得压榨别人的剩余价值.
各位努力吧,尚若日后有机会,希望大家一起合作压榨别人的剩余价值!

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-06-16 23:23
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
得分:0 
百年兄的话在下不敢苟同...
到了国外一样的被压榨..资本主义绝对不是说说而已.
只是老外懂得笼络人才, 给的稀饭里面会多加点米, 外送一碟泡菜...偶尔赏片肉吃吃.
我现在比较少搞设计了..大概做的事..
把设计完成的东西由我跑腿最后跑出来产品..再调好送检出厂..
所以基本可以跟DHL的算同行了...(笑)

女侠,约吗?
2007-06-17 10:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-148106-1-1.html




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

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