Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#11

Re: Fehler in Delphi mit For-Schleife

  Alt 20. Apr 2006, 15:53
Zitat von Robert Marquardt:
Du gehst von der falschen Voraussetzung aus das die Tooltips immer korrekt sind.
Das ist insbesondere bei einem Programm mit aktivierter Optimierung nicht der Fall.
Ich hab grad nochmal a bissl im asm-durcheinander gewuelt, und siehe da: Delphi interessiert sich nicht fuer den Inhalt von i. Die schleife koennte somit auch von 932745 bis 932739 laufen, und es wuerde nichts aendern. Ein Array hat naemlich die Angewohnheit, schoen seine Werte der Reihe nach im Speicher zu behalten. Also waers ziemlich dumm, jedesmal nach der Adresse des arrays zu fragen, um an das aktuelle Element zu gelangen. Stattdessen wird die Startadresse des Arrays genommen, bzw. das erste verwendete Element, und immer nur die Groesse des Elementes zum Zeiger dazugezaehlt. Damit zeige ich mit nur einer Addition immer aufs aktuelle Element, welche auch schoen nach der Reihe abgearbeitet werden, naemlich vom ersten bis zum letzten, und nicht umgekehrt. Wer schon mal in C mit Pointern gespielt hat, weiss was ich meine.
Es ist dann ein bisschen verwirrend, da ich im Code auf das Arrayelement mit einem Index zugreife, auf dem eigentlich nur Bockmist steht, aber es trotzdem funktioniert. Ergo: Sowohl die Tooltips stimmen, als auch die Compileroptimierung und die Reihenfolge des Zugriffs auf die Arraywerte, und der Hausbau wuerde somit immernoch beim Keller anfangen

greetz
Mike

[Edit] Ich werd zu langsam, und meine Affaere mit dem Roten Kasten geht auch in die Brueche
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat