#include <stdio.h>
int main()
{
unsigned j = 12;
printf("j > -1: %i\n", j > -1);
printf("j < -1: %i\n", j < -1);
printf("j > 1: %i\n", j > 1);
}
j > -1: 0
j < -1: 1
j > 1: 1
Естественно, компилятор ругается на сравнение знакового и беззнакового целых выражений. Но в чём глубинный смысл результата?
Я сначала было подумал, что это из-за представления unsigned. Но после увеличения j на INT_MAX результат не поменялся.