这种程序怎样编写

[复制链接]
1190|25
手机看帖
扫描二维码
随时随地手机跟帖
guoyt|  楼主 | 2018-12-23 17:03 | 显示全部楼层 |阅读模式
不用goto向上跳转
wangpe| | 2018-12-23 17:06 | 显示全部楼层
能不能有continue

使用特权

评论回复
llia| | 2018-12-23 17:12 | 显示全部楼层

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

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

使用特权

评论回复
zhanglli| | 2018-12-23 17:14 | 显示全部楼层


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

使用特权

评论回复
lium| | 2018-12-23 17:18 | 显示全部楼层
continue,break、等等可以实现所有的算法,换个思路想想吧!

使用特权

评论回复
llia| | 2018-12-23 17:22 | 显示全部楼层
我猜LZ是用汇编用惯了喜欢跳来跳去

使用特权

评论回复
hanwe| | 2018-12-23 17:25 | 显示全部楼层


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

使用特权

评论回复
yufe| | 2018-12-23 17:29 | 显示全部楼层
continue是结束本次循环,继续跳到条件判断处吧

使用特权

评论回复
wangpe| | 2018-12-23 17:34 | 显示全部楼层
刚从汇编转成C语言确实一下难道改掉一些汇编的编程思维,一遇到要判断的地方就想跳!

使用特权

评论回复
langgq| | 2018-12-23 17:37 | 显示全部楼层
如果只是跳转的次数少,而且,转换其它思路很困难的话,不如直接用goto。

使用特权

评论回复
wangzsa| | 2018-12-23 17:39 | 显示全部楼层
我开始也是不习惯C,你可以吧要用的功能写为一个子程序然后调用或者多用IF 分支选择语句就好了。

使用特权

评论回复
zhanglli| | 2018-12-23 17:43 | 显示全部楼层
不建议用goto语句,建议优化程序设计思路,写成2个函数

使用特权

评论回复
lium| | 2018-12-23 17:45 | 显示全部楼层

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

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

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

习惯汇编就用汇编好了!

使用特权

评论回复
hanwe| | 2018-12-23 17:47 | 显示全部楼层

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

使用特权

评论回复
yufe| | 2018-12-23 17:50 | 显示全部楼层
大伙都是高手,把我看得很透彻啊,呵呵

使用特权

评论回复
llia| | 2018-12-23 17:59 | 显示全部楼层
可以无差错的达到目的就行,用什么无所谓;

使用特权

评论回复
wangpe| | 2018-12-23 18:01 | 显示全部楼层
写成状态机的形式,有点像任务调度,就可以实现各个任务的跳转了

使用特权

评论回复
langgq| | 2018-12-23 18:08 | 显示全部楼层

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

使用特权

评论回复
zhanglli| | 2018-12-23 18:10 | 显示全部楼层
这个问题我曾经也遇到过。4年前刚刚从A转到C时。也在这个问题上遇到过。后来在坛子也遇到同样的问题。也用过整个程序只要一个死循环的,不过我现在东西让别的做的东西他是每个任务都要用死循环。所以就用了很多GOTO 之类的语句。不过各有好处。

使用特权

评论回复
lium| | 2018-12-23 18:12 | 显示全部楼层

实现同样的功能,代码的比较如下: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

粉丝