一个完善的编译程序,应该对于源程序没有什么“挑剔”,既便是源程序千差万错,也不应该自身出现什么问题。基于这种认识,我们认为以下现象是编译器的一个bug,当然指出这点的目的,仅仅是希望遇到同类问题时多一个解决思路,免得浪费时间。
现象如图1所示。
产生这一现象的原因是源程序中有这么一行:
while(STAT_BF==)
正确的应该是
while(STAT_BF==0)或者任何值,总之==后面不能为空,为空时就产生了上述的现象。当然上面那行程序是错的,不过我说了,就算我再错,你也不能罢工啊......
mplab版本 7.43,picc 8.05l。
|