Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#19

Re: Frage zum Aufbau eines Strings

  Alt 16. Jan 2005, 17:21
Zitat von SirThornberry:
@Sakura: Der Compiler schon, aber wenn man über den umweg der Pointer drauf zugreift kommt keine AV (so hatt ichs eigentli auch versucht)
Das liegt daran, dass der Compiler bei S[Index] automatisch eine 1 von Index abzieht. Müsste ungefähr so aussehen
Code:
MOV ESI, S
MOV EDX, [Index]
MOV AL, [ESI+EDX-1]
Wenn mal also immer von 0 ab zählt und dann mit S[Index+1] zugreift, optimiert der Compiler das zu (ungefähr):
Code:
MOV ESI, S
MOV EDX, [Index]
MOV AL, [ESI+EDX]
Also wird die -1 entfernt, was ein ganz kleinen, fast unmessbaren Geschwindigkeitszuwachs bringt. Macht aber die Lesbarkeit ein wenig kaputt.

Wenn man nun die String S in einen Zeiger konvertiert, entfällt das -1 ganz von alleine, weil es sich ja nicht mehr um einen String handelt.
  Mit Zitat antworten Zitat