Einzelnen Beitrag anzeigen

Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#2

AW: Pointer arithmetik

  Alt 8. Nov 2020, 15:54
Es vergleicht die Adressen.

Man kann das leicht beim Debuggen sehen, indem man einfach den Ausdruck PByte(ATab) in Auswertungsfenster (Strg+F7) eingibt.

Der Typ von Pointern ist nur wichtig beim Incrementieren/Dekrementieren bzw. beim Dereferenzieren.

Vielleicht macht der Typ unter Freepascal einen Unterschied, da die Typumwandlung nur unter !DELPHIORBCB passiert.

Korrektur: Testen ergab dass auch unter Delphi nur der Vergleich funktioniert wenn beide PByte sind. Sind beide PWideChar ist der generierte Code aber der gleiche, es werden also nur die Addressen verglichen.

Verwendet man {$POINTERMATH ON} ist der Typ aber tatsächlich egal!
HxD, schneller Hexeditor:
http://mh-nexus.de/hxd

Geändert von mael ( 8. Nov 2020 um 16:04 Uhr)
  Mit Zitat antworten Zitat