之前一直用的8.05版的,D版,不知道上面用过HT-PICC没有问题的同学是不是用的正版?反正D版的就经常出问题,今天又发现一个问题,如下:
buf=EEPROM_READ(0x7f); if (buf!=0x55) EEPROM_WRITE(0x7f,0x55); else EEPROM_WRITE(0x7f,0x00); 按C标准,如果if 和 else 下面如果只有一条语句,是不需要加"{ }"的,但是由于EEPROM_READ() 和EEPROM_WRITE() 是在PIC.H里定义的宏,是由多条语句组成的集合,如果用HT-PCC8.05 D版编译运行的话,结果就是不论if里的条件如果,结果都会执行到EEPROM_WRITE(0x7f,0x00),造成错误.解决办法就是把if 和else 下面的语句都加"{ }" 或者换成HT-PICC9.6版. 这个问题不能完成怪HT-PICC8.05,只是它不是那么符合C标准而已民.
|