打印

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

[复制链接]
642|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guoyt|  楼主 | 2020-4-11 15:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不用goto向上跳转这种程序怎样编写

使用特权

评论回复
沙发
wangpe| | 2020-4-11 15:15 | 只看该作者
能不能有continue

使用特权

评论回复
板凳
llia| | 2020-4-11 15:18 | 只看该作者

C语言一般都是顺序执行的吧,我还没有过要向上运行的。

如果非得向上,While;for都可以吧

使用特权

评论回复
地板
zhanglli| | 2020-4-11 15:21 | 只看该作者

向上跳就是为了再执行一次已经执行的代码
可以用循环结构实现之

使用特权

评论回复
5
lium| | 2020-4-11 15:25 | 只看该作者
continue,break、等等可以实现所有的算法,换个思路想想吧!

使用特权

评论回复
6
llia| | 2020-4-11 15:29 | 只看该作者
我猜LZ是用汇编用惯了喜欢跳来跳去

使用特权

评论回复
7
hanwe| | 2020-4-11 15:35 | 只看该作者

对,
建议用C就不要跳啦,循环的话用for,while,条件的话就把那段做成子函数,if调用

使用特权

评论回复
8
yufe| | 2020-4-11 15:38 | 只看该作者
continue是结束本次循环,继续跳到条件判断处吧

使用特权

评论回复
9
wangpe| | 2020-4-11 15:40 | 只看该作者
刚从汇编转成C语言确实一下难道改掉一些汇编的编程思维,一遇到要判断的地方就想跳!

使用特权

评论回复
10
langgq| | 2020-4-11 15:43 | 只看该作者

如果只是跳转的次数少,而且,转换其它思路很困难的话,不如直接用goto。

使用特权

评论回复
11
wangzsa| | 2020-4-11 15:46 | 只看该作者
我开始也是不习惯C,你可以吧要用的功能写为一个子程序然后调用或者多用IF 分支选择语句就好了。

使用特权

评论回复
12
zhanglli| | 2020-4-11 15:48 | 只看该作者
不建议用goto语句,建议优化程序设计思路,写成2个函数

使用特权

评论回复
13
lium| | 2020-4-11 15:55 | 只看该作者

高手用汇编写程序,你可以看出其中有C的架构

不过,我也看过一些C程序,我猜,那是先用汇编写好,然后手工译成C

希望楼主不是在进行这个工作

习惯汇编就用汇编好了!

使用特权

评论回复
14
hanwe| | 2020-4-11 15:59 | 只看该作者

估计楼主是刚学C,多看点别人的程序,
这不是什么go to的问题,是你不熟悉,不懂C。
很简单的 for 循环基本可以满足

使用特权

评论回复
15
yufe| | 2020-4-11 16:02 | 只看该作者
大伙都是高手,把我看得很透彻啊,呵呵

使用特权

评论回复
16
llia| | 2020-4-11 16:05 | 只看该作者
可以无差错的达到目的就行,用什么无所谓;

使用特权

评论回复
17
tian111| | 2020-4-11 16:09 | 只看该作者
写成状态机的形式,有点像任务调度,就可以实现各个任务的跳转了

使用特权

评论回复
18
langgq| | 2020-4-11 16:12 | 只看该作者

goto不是不能用,他所以存在就是为了用的,但要看场合,如果一个goto就能是你的程序完成既要的功能,清晰明了,为什么不用呢
但如果你滥用goto的话,最后你自己都会昏头

使用特权

评论回复
19
pengf| | 2020-4-11 16:17 | 只看该作者
这个问题我曾经也遇到过。4年前刚刚从A转到C时。也在这个问题上遇到过。后来在坛子也遇到同样的问题。也用过整个程序只要一个死循环的,不过我现在东西让别的做的东西他是每个任务都要用死循环。所以就用了很多GOTO 之类的语句。不过各有好处。

使用特权

评论回复
20
lium| | 2020-4-11 16:20 | 只看该作者

实现同样的功能,代码的比较如下:Program Size: data=67.7 xdata=0 code=4894(只要一个死循环,无GOTO 之类的语句)
Program Size: data=20.2 xdata=161 code=10752(这个是用了goto每个任务都是死循环)
同样的编译等级9(keil)

使用特权

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

本版积分规则

1018

主题

9067

帖子

3

粉丝