发新帖我要提问
12
返回列表
打印

不用goto向上跳转的程序怎样编写

[复制链接]
楼主: chenjunt
手机看帖
扫描二维码
随时随地手机跟帖
21
llljh| | 2012-8-12 19:11 | 只看该作者 回帖奖励 |倒序浏览
我喜欢用goto  ,你不觉得 jmp  jne je 诸如此内很爽么

使用特权

评论回复
22
chenjunt|  楼主 | 2012-8-12 19:12 | 只看该作者
呵呵,大家说的都有道理,先结贴啦

使用特权

评论回复
23
chenjunt|  楼主 | 2012-8-12 19:13 | 只看该作者
多谢各位了,周末愉快啊

使用特权

评论回复
24
qq65411253| | 2012-8-12 20:11 | 只看该作者
想用就用,法律又没有规定不许用。

使用特权

评论回复
25
peter_zheng| | 2012-8-13 08:10 | 只看该作者
滥用goto的后果很严重。可以用循环来做。

使用特权

评论回复
26
o888888880| | 2012-8-13 09:08 | 只看该作者
只要产生外部中断,就跳到程序开始处,用什么语句实现呢。在c中,大虾们?

使用特权

评论回复
27
cheungman| | 2012-8-13 10:35 | 只看该作者
不用goto, 就用C语言写一个"goto"指令了,

比如楼上问题可用: (*((void(*)(void))ARESET_VECTOR_ADDR))();

使用特权

评论回复
28
eyesmall| | 2012-8-13 14:07 | 只看该作者
一般循环语句实在不给力我才用goto,也只是偶尔用,这东西用不好会带来不必要的麻烦。goto语句其实很简洁明了,但最好不要用goto 做循环 (资料上说的,太具体的不知道)

使用特权

评论回复
29
李冬发| | 2012-8-13 16:16 | 只看该作者
不用goto, 就用C语言写一个"goto"指令了,

比如楼上问题可用: (*((void(*)(void))ARESET_VECTOR_ADDR))();
cheungman 发表于 2012-8-13 10:35

----------
没这么简单

使用特权

评论回复
30
xmar| | 2012-8-13 16:39 | 只看该作者
关键不在于你用不用goto的问题,用goto同样可以写出结构化好的程序,只不过要特别小心、麻烦。相反,不用goto程序的结构化就自然而然就很好也是不切实际的。

什么是结构化?如果程序结构中仅仅只有顺序、选择、循环此三种结构和此三种结构的嵌套。这种程序结构就是结构化的。使用结构化编程有很多优点。当然不是说非结构化就没有优点。而是说非结构化编程带来的负面影响远远大于其优点。而且就编程实践来看,还未发现结构化编程不能描述的算法。

因此,随意使用goto只是很容易破坏程序的结构化而已。初学者最好不用goto语句。其实最关键的还是要养成结构化编程的习惯。记住:你的程序只有三种结构——顺序、选择和循环。拒绝其他任何结构!

使用特权

评论回复
31
菜鸟同学| | 2012-8-13 16:56 | 只看该作者
程序设计结构问题。我深有体会!

使用特权

评论回复
32
GG_GG| | 2012-8-13 19:26 | 只看该作者
使用条件判断就行了!

使用特权

评论回复
33
figo20042005| | 2012-8-13 21:14 | 只看该作者
GOTO跳上面后要再跳下去麻烦,你可以单独写出子函数,调用下。

使用特权

评论回复
34
tianm| | 2012-8-14 12:01 | 只看该作者
很少用GOTO

使用特权

评论回复
35
hawksabre| | 2012-8-23 19:29 | 只看该作者
如果要跳出循环可以使用break语句   如果要跳上去  可以使用判断语句实现   当然最好使用指针   呵呵  用指针很方便   关键是调用内存时   不能出错   呵呵  堆栈问题也要处理好

使用特权

评论回复
36
sssha| | 2012-8-29 13:44 | 只看该作者
哦,用循环语句while,for语句

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则