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

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

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

使用特权

评论回复
22
zhenykun| | 2019-7-30 21:30 | 只看该作者
想用就用,法律又没有规定不许用。

使用特权

评论回复
23
yszong| | 2019-7-30 21:35 | 只看该作者

滥用goto的后果很严重。可以用循环来做。

使用特权

评论回复
24
shimx| | 2019-7-30 21:37 | 只看该作者
只要产生外部中断,就跳到程序开始处,用什么语句实现呢。在c中,大虾们?

使用特权

评论回复
25
dengdc| | 2019-7-30 21:38 | 只看该作者

不用goto, 就用C语言写一个"goto"指令了,

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

使用特权

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

使用特权

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

使用特权

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

使用特权

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

使用特权

评论回复
30
lizye| | 2019-7-30 21:45 | 只看该作者

GOTO跳上面后要再跳下去麻烦,你可以单独写出子函数,调用下。

使用特权

评论回复
31
liliang9554| | 2019-7-30 21:47 | 只看该作者


如果要跳出循环可以使用break语句   如果要跳上去  可以使用判断语句实现   当然最好使用指针   呵呵  用指针很方便   关键是调用内存时   不能出错   呵呵  堆栈问题也要处理好

使用特权

评论回复
32
jiaxw| | 2019-7-30 21:48 | 只看该作者
哦,用循环语句while,for语句

使用特权

评论回复
33
huangchui| | 2019-7-30 21:49 | 只看该作者
有一次我写一段程序,想来想去没办法,只好用了goto.

使用特权

评论回复
34
jiajs| | 2019-7-30 21:56 | 只看该作者
过了几个月,再回过头看一下代码,咦,完全不需要goto嘛,改了几行,功能完全一样,但是看上去逻辑很清晰。

使用特权

评论回复
35
jiaxw| | 2019-7-30 21:57 | 只看该作者
我猜楼主以前一定是个汇编高手。
C语言的基本单位是函数。
你把要goto到的那个地方的相关功能做成函数
在主函数中根据条件进行调用就可以了
跳来跳去的,多不安全呀。

使用特权

评论回复
36
zhaoxqi|  楼主 | 2019-7-30 21:59 | 只看该作者

其实还是不大明白,我再琢磨琢磨吧,多谢了哈,结贴了先

使用特权

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

本版积分规则