Korrekter Umgang mit dem Vergleich von vorzeichenbehafteten und vorzeichenlosen Werten

8

Ich bin an einem Punkt angelangt, an dem ich gesenkte und vorzeichenlose Werte vergleichen muss. Bis jetzt habe ich immer die Code-Basis geändert, um diese Situation komplett zu vermeiden, aber jetzt kann ich das nicht mehr machen.

Also, was ist der wirklich richtige Weg, um einen Vergleich von Gesunden und Unsignierten durchzuführen? Dies ist eine gemischte C / C ++ Codebasis, daher gilt meine Frage für beide Sprachen.

Ich überprüfe eine Ressource (signiert) mit dem angeforderten Wert (unsigned).

%Vor%

Ich habe über so etwas nachgedacht (ggf. C ++ - Varianten ersetzen):

%Vor%

Komme ich das richtig an, oder gibt es einen besseren Weg?

    
Let_Me_Be 31.07.2012, 08:20
quelle

1 Antwort

9

Sie können diesen einzeiligen Code als Ausgangspunkt verwenden, um dies sicher zu tun:

%Vor%

P.S. Es ist eine gute Methode, nach Möglichkeit gemischte signierte / unsignierte Vergleiche zu vermeiden, da ein zusätzlicher Vergleich und eine Umwandlung zu einem Leistungsverlust führen können.

    
Sergey K. 31.07.2012, 08:27
quelle

Tags und Links