今日调试一程序,碰到一处断言过不去,可以看了半天就看不出来哪过不去~断言如下:
N小时之后,无意发现是变量类型不对。
len是Unsigned型的,而-1是signed型的。
以我的推测,Gcc编译器会将Signed型变量转换成Unsigned,所以这里(len >= -1)就是false了。
- UINT len = 5;
- ASSERT(len >= -1)
len是Unsigned型的,而-1是signed型的。
以我的推测,Gcc编译器会将Signed型变量转换成Unsigned,所以这里(len >= -1)就是false了。