将负整数文字常量转换为相应的无符号整数。例如,将-1转换为4294967295(如果使用32位无符号整数)。这样可以避免在比较时出现未定义的行为。
示例代码:
unsigned int a = 10; if (a < -1U) { //问题点 //处理代码 }
//改进后的代码 unsigned int b = -1U; if (a < b) { //处理代码 }
上一篇:比较无符号短整型和无符号字符型的二进制位会发生什么?(在C语言中)
下一篇:比较无符号整数与有符号类型