打印

大虾帮我看一下这个延时程序对不对?

[复制链接]
1357|9
手机看帖
扫描二维码
随时随地手机跟帖
沙发
turmary| | 2007-5-21 18:14 | 只看该作者

I变量怎么用于三重循环

再定义j,k就好了。

使用特权

评论回复
板凳
ww4u| | 2007-5-21 20:29 | 只看该作者

不对

你只用了一个局部变量i,也就是说在下一层循环中改变了上一层的计数值,当i为200时退出了最下面的循环,同时也退出了上面两层循环,所以实际上只执行了近200次。另外还有一个问题,最后一个循环后需要加上分号.

使用特权

评论回复
地板
寒雨飞扬| | 2007-5-21 22:17 | 只看该作者

哈哈,肯定不对了!!

使用特权

评论回复
5
5880527| | 2007-5-22 10:01 | 只看该作者

我一直不喜欢这样延时

我一直不喜欢这样延时

使用特权

评论回复
6
huweiping| | 2007-5-22 13:50 | 只看该作者

不可以的

一次循环不只是一个机器周期,反汇看看吧.那样循环也是不对的

使用特权

评论回复
7
prcxf| | 2007-5-22 18:01 | 只看该作者

要习惯于这样写:

void delay(unsigned char i)
{
    for(i=200;i>0;i--)
        ...
}
用于延时程序可能无所谓,用于其它程序,可能效率会好些!

还有,问问题之前,建议先看反汇编,自己找到途径解决问题才会更长进!

使用特权

评论回复
8
jhx19807| | 2007-5-22 23:04 | 只看该作者

to

1、缺少变量,只用了i,实际只运行200次;
2、最好用递减

使用特权

评论回复
9
王紫豪| | 2007-5-23 01:40 | 只看该作者

晕,

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝