延时声明的char改成int后,延时时间明显变长了,为什么呢?

2020-02-05 09:12发布

#include<reg51.h>
sbit led=P1^0;
//========================
void delay()
{
unsigned char i,j;//<----------------------------------就是这里的char改成int后,延时时间明显变长了,为什么呢?
for(i=0;i<250;i++)
for(j=0;j<250;j++)
;
}
//========================
void main(void)
{
unsigned int i;
while(1)
{
for (i=0;i<1;i++)
delay();
led=~led;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
yiyu
1楼-- · 2020-02-05 11:09
因为你用的是51,如果你用stm32的话,你就可以感到明显变短
BXAK
2楼-- · 2020-02-05 15:14
懂汇编的话,通过反汇编窗口看看代码的变化就知道了
kilau
3楼-- · 2020-02-05 18:00
 精彩回答 2  元偷偷看……
mook_dj
4楼-- · 2020-02-05 20:23
kilau 发表于 2012-6-1 21:35
8位机 执行8位数字
和16位数的运算代码量不一样

正解,明白了。

一周热门 更多>