本帖最后由 ailingg 于 2012-11-15 22:58 编辑
PICC V8.05编译运行正常的程序,用PICC 9.83怎么修改都不能正常运行。
关于PICC V9.83编译器,是语法检查严格还是BUG?问题如下:
1.“\”转义字符
if(KeyAge<1) //如果按键一直按下,则键盘扫描函数里将使KeyAge增加到>=1,\
flag_beep=SIGNAL; //按键释放后KeyAge被清零
break;
case 0x42: // Decrease
就因为注释行里有一个“\”转义字符,编译器就跳过break,这个问题我查了一整天。这难道是所谓的严格语法检查?明明就是BUG。
ICC V9.83里倒是提到‘\’转义符的使用,但注释都分不清怎么也说不过去。
2.条件与
如 if((flag_Setting==SealingSetting)&&((*select_ptr)<35))
这条语句是得不到正确结果的,只能写成如下嵌套格式方能得到正确结果。
if(flag_Setting==SealingSetting)
{
if(*select_ptr<35)
{
;
}
}
条件或‘||’应该存在相同的问题。PICC V9.83使用手册里也找不到相关的变更说明。
3. 变量观察窗口
无法显示指针指向的内容,定义指向数据存储器的指针指向对象时需在前面加数据类型修饰符才能正确显示结果,但编译时却警告语法不正确。
真不知道8.05版用的很好为什么最新版本却有这么多问题,是因为用盗版的人多所以很随意吗?真不知道还存在其他什么样的致命问题,让人用起来提心吊胆。 |