W1023 Vorzeichenbehaftete und -lose Typen werden verglichen - beide Operanden werden erweitert (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Zum korrekten Vergleichen von Typen mit und ohne Vorzeichen muss der Compiler beide Operanden auf den nächstgrößeren gemeinsamen Datentyp "hochstufen".

Um zu sehen, warum die Typänderung erforderlich ist, betrachten Sie zwei Operanden, nämlich Shortint mit dem Wert -128 und Byte mit dem Wert 130. Der Typ Byte weist eine Stelle mehr an Genauigkeit auf als der Typ Shortint, so dass der Vergleich der beiden Werte über nur 8 Bit nicht exakt erfolgen kann. Die Lösung für den Compiler besteht darin, beiden Typen auf eine nächsthöhere gemeinsame Größe zu erweitern und dann den Vergleich durchzuführen.


program Produce;
  var
    s: shortint;
    b : byte;

begin
  s := -128;
  b := 130;

  assert(b < s);
end.