У меня следующая ситуация (unix):
x is a long and has value 300
y is a long and has value 50000
if (x <= y) printf("Correct.");
if (x > y) printf("Ouch.");
Теперь я всегда получаю "Ой". Это означает, что программа постоянно говорит мне, что 300 больше, чем 50000!
Это снова работает только тогда, когда я
if ((int)x <=(int) y) printf("Correct.");
if ((int)x > (int)y) printf("Ouch.");
Так что не так с операторами сравнения?