Sunny hat geschrieben:EDIT: Hab mit dein Codebeispiel zu spät angesehen. Ok, das ist zwar ein kleiner Vorteil, aber kaum umständlicher als mit Poke und Peek.
Dann könnte man doch gleich die Pointer ganz aus PB herausnehmen,
wenn man alles über Peek/Poke machen kann.
So zu argumentieren ändert nichts daran das es nicht
ordentlich funktioniert.
Du kannst auch ein Long in der Struktur speichern und
dann über einen anderen Pointer darauf zugreifen:
Code: Alles auswählen
Structure xyz
p.l
EndStructure
a.xyz
a\p = @i
*p.LONG = a\p
*p\l = 12
Debug i
Die 2 Zeilen mit dem Pointer *p ersetzen hier das direkte
"a\*p\l = 12", wenn man in der Struktur den Pointer *p.LONG
benutzen könnte.
Viele Programmierer benutzen sowas z.B. für LinkedLists:
Code: Alles auswählen
Structure MyList
data1.l
data2.l
data3.s
*prevelement.MyList
*nextelement.MyList
EndStructure
So kann man eben direkt über den Pointer auf Strukturen
zugreifen, anstatt sich erst den Pointer mit PeekL() zu holen
und dann über einen richtigen Pointer darauf zuzugreifen.
Mit Pointern finde ich es vor allem auch übersichtlicher und
leichter zu lesen, als irgendwas mit PokeL(PeekL(p+16), 12).
(Ein Bekannter von mir codet dauernd so, und ich weiß nie
was der dort gerade macht - muß erst alles auseinandernehmen)