Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#22

AW: array[1..10] auf Wert prüfen?

  Alt 13. Aug 2018, 06:43
Hallo,
Zitat:
Innerhalb der Schleife würde das beim Zugriff auf diese Variable wieder umgegreht, falls diese Variable überhaupt ausgelesen wird, aber nach der Schleife bleibt i eventuell bei 0 oder sogar -1 stehen, was man versteht, da das INC/DEC vor der Abbruchbedingung liegen könnte und der Vergleich mit 0 kürzeren optimaleren Prozessor-Code erzeugt.
Das ist nicht ganz korrekt.
Wenn die Schleifenvariable innerhalb der Schleife nicht benutzt wird, optimiert das der Compiler,
weil ein Compare mit 0 als Endergebnis der Schleifenvariable schneller ist.

Wird die Schleifenvariable innerhalb der Schleife benutzt, zählt der "Compiler richtig".

Und eine Schleifenvariable darf eh nicht außerhalb der Schleife benutzt werden.
Das bringt auch hoffentlich eine Compilerwarnung, wenn es trotzdem versucht wird.
Heiko

Geändert von hoika (13. Aug 2018 um 06:57 Uhr)
  Mit Zitat antworten Zitat