[求助] pic单片机无符号整型比较大小异常的问题

jiakun5893423   2017-12-28 08:49 楼主
各位坛友,

          我在用Pic 16f1825单片机开发程序的时候遇到个问题,两个全局变量,一个unsigend int (u16): tempu16,一个unsigned long(u32):tempu32, 串口打印u16的数值都是大于unsigned long的,但是发现
          if(tempu16 > tempu32)
                printf("judge 1\n");
          这个“judge1”的log有时候有,有时候没有,就是说判断条件有时候成立,有时候不成立。
后将tempu16的变量定义成u32的就不再有问题。
          使用的mplab ide的环境,picc9.8编译器.
          有哪位碰到过类似的问题吗?没法解释清楚啊!

回复评论 (4)

编译器的问题吧,可以升级到xc系列编译器了。
点赞  2017-12-28 09:51
要不就搞成都是U32 要不就在语句中强制转换吧。 这样搞很担心啊。万一编译器给你编译错了你的程序就很恼火啊。没必要给自己找麻烦。
点赞  2017-12-28 10:31
两个不同类型的数比较,最好不要这么干
为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
点赞  2017-12-28 10:54
只是这样比较吗,有没有赋值?
点赞  2017-12-28 11:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复