Einzelnen Beitrag anzeigen

SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#7

Re: for schleife in dreierschritten

  Alt 18. Apr 2007, 15:39
Darf ich auch noch was dreckiges, unpraktisches und vor allem fehleranfälliges hinzufügen?

Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  i: BYTE;

type
  PBYTE = ^BYTE;

begin
for i := 1 to 20 do
  begin
  writeln(i);

  PBYTE(@i)^ := PBYTE(@i)^ + 1
  end;

ReadLn
end.
Man muss übel aufpassen, da ja im Hintergrund immer noch "i" inkrementiert wird!
Aber diese Variante verwendet sowieso keiner (sollte man ja auch nicht!)

Was mich verwundert, wenn man bedenkt, dass die "richtige" Zählvariable einer for-Schleife immer rückwärts gezählt wird, wieso hört diese Schleife (in meinem Beispiel) schon eher auf?
Merkt der Compiler, dass man über Pointer auf i zugreift und optimiert er den dann Code nicht?
Sebastian
  Mit Zitat antworten Zitat