Знаковую переменную пытаться понять как беззнаковую - это супер элегантно.
Кстати, в Сях целочисленное переполнение знаковой переменной - это 100% UB, непределённая операция. Так то мы знаем, что в отрицательные значения перейдёт, можно даже подумать что поведение определено, но есть прикол. Все современные компиляторы знают, что програмист знает, что в этом месте UB, а значит что? Значит компилятор в праве просто взять и выкинуть кусок кода, например, весь условный оператор.
Best Regards, Nil --- GoldED+/LNX 1.1.5 * Origin: Linux 2.6.32-042stab145.3 (2:5015/46)