一次比较给我带来的麻烦

                  作者:憨牛

单片机中常常遇到一个变量和一个常数来比较,当用判断来做时没有任何问题.

       如:前面定义了unsignedchar data m;

        if(m>=25)

         M=25;

       else

         m=0;

但是如果写成if(m-25>=0)有时会出现什么后果呢?

当m<25时,其差为负数,但是前面定义了m为非负的整数,这样其差就会是一个很大的正数(255-(25-

m)),这样总是执行m=25;else永远得不到执行,程序就会出现我们意想不到的后果。这是我们不想看到的

结果,所以当我们对二个数进行比较时最好用判断,不用减法,用减法时要把变量定义成char data就可以

了,注意char最大只有127个呦。加法也要注意不能超过一个字节的大小,当然我们估计化在没有借位或借

位的情况下还是能做相应的加减的。