Porównanie pomiędzy signed i unsigned int.

Odpowiedz Nowy wątek
2017-01-11 19:21
0

Moje IDE (Eclipse) wywala mi warning jak w temacie (chodzi o porównanie (string.size() > width). A przecież mam pewność, że signed na pewno nie jest ujemne:

 if (width>0){
    if (string.size() > width){
    .....
    }
}

Myślałem o wyliczeniu wartości bezwzględnej z width, ale to bez sensu, skoro sprawdzam, czy width > 0.
Wobec tego powinienem coś z tym zrobić, czy olać to?


"Jesteśmy świadomymi istotami, a życie jest sposobem w jaki wszechświat poznaje sam siebie." prof. Brian Cox
edytowany 1x, ostatnio: Patryk27, 2017-01-11 19:44
Btw, nie wrzucaj nazwy języka do tematu - w tym celu istnieją tagi oraz podział na kategorie. - Patryk27 2017-01-11 19:44

Pozostało 580 znaków

2017-01-11 19:22

Kompilator zazwyczaj aż tak dokładnie nie analizuje kontekstu - po prostu widzi porównanie signed <=> unsigned i rzuca wyjątek.
Dlaczego w ogóle width jest liczbą ze znakiem?


edytowany 3x, ostatnio: Patryk27, 2017-01-11 19:23
hahaha w sumie bardzo dobre pytanie :D - bl4ster 2017-01-11 19:26

Pozostało 580 znaków

2017-01-11 19:33
Szalony Szczur
0

Tak ogólnie to aż się prosi o Short-circuit evaluation:

 if (width > 0 && string.size() > width)
{

}
Twój post nie ma sensu - SCE przecież wprost występuje w pierwotnym kodzie autora. - Patryk27 2017-01-11 19:34

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0