前几天写了个程序,引起错误的一点如下
BYTE i = 256; ...... for(int j = 0; j < i; ++j) { k = i - j; }
进入for循环调试时发现i的初值为0,当时并没有意识到去注意无符号字符类型的取值范围,而是去寻找i的值是否在其他地方被改变,折腾了半天,才注意到BYTE类型的最大取值为
2^8 - 1 = 255
因此当对其赋值256时,i==0
教训
由于平时使用整型等时一般不会出现超过其最大值的情况,因为未对类似情况加以注意,从而导致了错误的发生。以后严加注意。