kingman 发表于 2009-4-18 17:59:16

PICC 的小窍门(原创)

在 PICC 默认的无符号环境下,对比如下代码:
a 语句:
char i,j;
i=7;
while(1){
j=0;
i--;
if(i==0)break;
}
b 语句:
char i,j;
for(i=8;i>0;i--){
j=0;
}
表面看上去,一般会认为下面的代码编译后要大一点点,因为多了j中的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 等,所以在编写代码时候要特别小心!!!
页: [1]
查看完整版本: PICC 的小窍门(原创)