winnie 发表于 2009-4-18 14:48:59

PICC的延时程序中for语句的用法怎么跟C有点不同

我看了一下用PICC写的延时程序for语句的用法,与标准C中好像不一样啊,大家知道怎么回事吗?
void DELAY()
{
for(i=60003;--i;)
continue;
}
这个语句中怎么没有条件判断,我改成下面的形式编译后,发现占用的空间还变大了一点,有人能说说原因吗?
void DELAY()
{
for(i=60003;i>1;--i)
continue;
}

winnie 发表于 2009-4-18 14:52:06

因为对于for语句结束条件判断时,判零语句时会节约代码。
void DELAY()
{
for(i=60003;--i;)
continue;
}

结束条件判断是判零语句,单片机有直接的判零汇编语句。

void DELAY()
{
for(i=60003;i>1;--i)
continue;

}

结束条件判断不是判零语句。
页: [1]
查看完整版本: PICC的延时程序中for语句的用法怎么跟C有点不同