# 有符号和无符号比较 ```c void demo() { int a = -10; uint32_t c = 6; if (a < c) { printf("1 a < c\r\n"); } else { printf("1 a > c\r\n"); // 打印这里 错误 } if (a < (int)c) { printf("2 a < c\r\n"); // 打印这里 正确 } else { printf("2 a > c\r\n"); } if ((uint32_t)a < c) { printf("3 a < c\r\n"); } else { printf("3 a > c\r\n");// 打印这里 错误 } if ((a - c)<0) { printf("4 a < c\r\n"); } else { printf("4 a > c\r\n");// 打印这里 错误 } if ((int)(a - c) < 0) { printf("5 a < c\r\n");// 打印这里 正确 } else { printf("5 a > c\r\n"); } if ((a - (int)c) < 0) { printf("6 a < c\r\n");// 打印这里 正确 } else { printf("6 a > c\r\n"); } if ((a - c) < (int)0) { printf("7 a < c\r\n"); } else { printf("7 a > c\r\n");// 打印这里 错误 } } ```