jupp, ist richtig ... es wirdpraktisch nur eine neue Variable erstellt, welche aber im selben Speicher liegt, wie die andere Variable, welche per "absolute" angegeben wird. (bei nicht gleichgroßen Variablen liegt der Anfang des Speichers übereinander und weiter der jeweils erste Teil, welcher noch gleich groß ist)
[add]
Zitat von
sirius:
Fast.
Wenn FSocket zwischenzeitlich einen neuen Wert bekommt, kriegt das MySock nicht mit.
sicher? (mal ausprobier)
[add2]
@DevilsCamp: Delphi meckert bei deinem code übigens auch
Zitat:
[DCC Fehler] Unit1.pas(64): E2088 Variable erwartet
a und result haben immer den selben Wert ... bei deiner Beschreibung würde Delphi den Wert für result kopieren und eine
neue Variable erstellen.
Delphi-Quellcode:
function xyz: integer;
var a: longword absolute result;
begin
a := 123;
if a = 1 then ;
if result = 1 then ;
result := 456;
if a = result then ;
a := 789;
if a = result then ;
end;
die D2009-
OH kennt absolute wohl nicht und D7 sagt
Zitat:
Sie können eine neue Variable an der Adresse erstellen, an der bereits eine Variable existiert.
...
Diese Anweisung legt fest, dass die Variable StrLen an derselben Adresse wie die Variable Str beginnt. Da das erste Byte eines kurzen Strings dessen Länge angibt, ist der Wert von StrLen die Länge von Str.