Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Anweisung für FOR-Variable (https://www.delphipraxis.net/11572-anweisung-fuer-variable.html)

Chewie 9. Nov 2003 22:43

Re: Anweisung für FOR-Variable
 
So gehts in Pascal:

Delphi-Quellcode:
var
  i: Integer;
  pi: PInteger;
begin
  for i := 1 to 100 do
  begin
    if i = 50 then
    begin
      pi := @i;
      pi^ := 70;
    end;
    Listbox1.Items.Add(InttoStr(i));
  end;
end;
Wenn ich mich nicht ganz täusche, wird dabei allerdings die Codeoptimierung ausgehebelt, was bei Sakuras Variante nicht der Fall ist.

choose 9. Nov 2003 23:19

Re: Anweisung für FOR-Variable
 
Zitat:

Zitat von sakura
So gehts (in Assmebler):
Delphi-Quellcode:
asm
  cmp ebx, 50
  jnz @@1
  mov ebx, 70
  @@1:
end;

Hallo Sakura, dieser Code funktioniert leider nicht mit jeder Schleife, weil
  1. ebx nicht immer zum Zählen verwendet wird,
  2. in vielen Fällen, Zähler und Offset getrennt gehalten werden, zB
    Delphi-Quellcode:
    for i:=0 to 255 do
      myArray[i]:= i;
  3. der Optimizer sonstwas fabrizieren kann, uU sogar die Richtung ändert, wenn die Zählvariable nicht in Ausdrücke eingebunden ist, und
  4. er mit jeder Änderung des Compilers, Plattform, etc. angepasst werden muss

Klar warst Du Dir diesen Tatsachen bewusst, aber es könnte passieren, dass jemand anderes Deine Lösung einsetzt, in diesem Augenblick Erfolg und in produktiven Systemen zu einem späteren Zeitpunkt einen "Bug" in schlecht wartbarem Code hat...


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:40 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz