英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

标题: PICC 的小窍门(原创) [打印本页]

作者: kingman    时间: 2009-4-18 17:59
标题: PICC 的小窍门(原创)
在 PICC 默认的无符号环境下,对比如下代码:
a 语句:
char i,j[8];
i=7;
while(1){
j[i]=0;
i--;
if(i==0)break;
}
b 语句:
char i,j[8];
for(i=8;i>0;i--){
j[i-1]=0;
}
表面看上去,一般会认为下面的代码编译后要大一点点,因为多了j[i-1]中的i-1。
其实编译后代码量是一摸一样的。
原因如下:
movlw 8 或7 //a 语句是7,b 语句是8
movf i
loop
//a 语句在这里提取i 给j 数组
//i 递减判断语句
//b 语句在这里提取i 给j 数组
goto loop
可以看出只是代码位置不同而已,并没添加代码量。b 语句同样达到了从7 到0 的循环。
小总结:对于递减到0 的for 语句推荐用>0 判断语句来实现,不会出现编译错误的问题,并
且不会增加代码量,尤其对于数组操作的方面。
另:对于 PICC 或CCS,在其默认的无符号编译环境下,如果出现负数运算就会出问题。
如(-100)+50 等,所以在编写代码时候要特别小心!!!




欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/) Powered by Discuz! X3.2