W1024 Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Zum mathematischen Kombinieren von Typen mit und ohne Vorzeichen erweitert der Compiler zunächst beide Operanden auf einen nächstgrößeren gemeinsamen Datentyp.

Um zu sehen, warum die Typänderung erforderlich ist, betrachten Sie zwei Operanden, nämlich Integer mit dem Wert -128 und Cardinal mit dem Wert 130. Der Typ Integer weist eine Stelle mehr an Genauigkeit auf als der Typ Cardinal, so dass der Vergleich der beiden Werte über nur 32 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.

Der Compiler zeigt diese Warnung nur, wenn die Größe die zur Berechnung des Ergebnisses übliche Größe überschreitet.


{$APPTYPE CONSOLE}
program Produce;
  var
    i : Integer;
    c : Cardinal;

begin
  i := -128;
  c := 130;
  WriteLn(i + c);
end.


In diesem Beispiel warnt der Compiler davor, dass der Ausdruck mit 64 Bit und nicht mit 32 Bit berechnet wird.