Registriert seit: 13. Jan 2005
391 Beiträge
Delphi XE3 Professional
|
AW: Pointer arithmetik
8. Nov 2020, 16: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!
Geändert von mael ( 8. Nov 2020 um 17:04 Uhr)
|