Почему GCC выдает предупреждения только для ситуаций 1 и 3, а не 2 в приведенном ниже коде?
Я компилирую с флагами -Wall и -g.
int main() {
unsigned int ui = 4;
int si = 6;
if (si == ui ) { // Warning comparison b/w signed and unsigned
printf("xxxx");
}
if (si == 2U ) { // No Warning --- WHY ???
printf("xxxx");
}
if (si > 2U ) { // Warning comparison b/w signed and unsigned
printf("xxxx");
}
return 0;
}