Einzelnen Beitrag anzeigen

Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#8

Re: for i:=0 to 3 do => wieso wird i = 4?

  Alt 3. Feb 2006, 15:18
Zitat von Angel4585:
Delphi-Quellcode:
for i:= 0 to 3 do
 for j:= 0 to 4 do
  Beep;
macht mal Haltepunkt auf Beep und schaut was i für en Wert hat.. bei mir es es auch 4
in diesem Fall ist es eine Compiler-Optimierung von Delphi... da die Werte von I bei den Schleifendurchgängen eh niemanden interessiert, baut der Compiler folgendes Konstrukt:
Delphi-Quellcode:
I:=4;
Repeat
  for j:= 0 to 4 do Beep;

  Dec(I);
Until (I = 0);
ein Vergleich, ob I noch grösser als 0 ist, ist weniger "anstrengend" (lediglich Zero-Flag auslesen) also der Vergleich, ob I noch kleiner als 3 ist (Subtraktion notwendig)...
  Mit Zitat antworten Zitat