Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#10

Re: Schleife läuft rückwärts trotz Verwendung der Zählvariab

  Alt 26. Apr 2006, 14:40
Hallo,
Zitat von Daniel G:
Zitat von xaromz:
Du verwendest die Variable in Deinem Quellcode, Delphi verwendet sie nicht.
Kannst du das näher erläutern? Ich komm' grad nicht mit.... Wie "zählt" Delphi dann?
wenn möglich, läuft eine Schleife vom Maximum runter bis Null, weil ein Vergleich auf Null schneller ist.
Wenn die Schleifenvariable zur Indizierung eines Arrays genutzt wird, dann benötigt Delphi die Variable nicht.
Ich erkläre das am Besten mal an einem Beispiel:
Wir zählen von 1 bis 10 und haben ein Array [1..10] of Integer

Wenn wir das so schreiben:
Delphi-Quellcode:
var
  C: Integer;
  A: array [1..10] of Integer;
begin
  ... initialisieren
  for C := 1 to 10 do
    Result := Result + A[C];
end;
dann baut Delphi das ungefähr so um:
Delphi-Quellcode:
var
  C: Integer;
  A: array [1..10] of Integer;
  P: ^Integer;
begin
  ... initialisieren
  C := 10;
  P := @A[1];
  repeat
    Result := Result + P^;
    Inc(P);
    Dec(C);
  until C = 0;
end;
Wie man sieht, wird C für den Zugriff auf das Array nicht benötigt.

Gruß
xaromz
  Mit Zitat antworten Zitat