Можно создать дубликат:
Unsigned and signed comparison
unsigned int and signed char comparisonНевозможно войти в то время как заявление
У меня есть странное поведение, когда я пытаюсь войти в это время заявление:
unsigned u = 0;
int i = -2;
while(i < u)
{
// Do something
i++;
}
Но он никогда не входит, даже если когда я установить точку останова i = -2
и u = 0
. Что я делаю неправильно? Как я могу это исправить?
Спасибо, +1 за решение с полным объяснением. – Nick
Будет ли это работать, если вы определили i как '' 'signed int i'''? –
По умолчанию, если мы не укажем 'signed' или' unsigned', большинство параметров компилятора будут принимать тип, который будет подписан, поэтому в этом случае 'signed int i' имеет тот же эффект' int i', и результат получается тоже самое. – gliderkite