Das logische daran ist eigentlich nur, dass ein Integer (.i) immer genau so groß ist wie ein Pointer, sich also an das jeweilige System anpasst, für das kompiliert wird.
Richtige Pointer als Rückgabewert sind in PB nicht vorgesehen, aber was noch nicht ist, kann ja noch werden.
Besonders cool fänd' ich sowas in der Art:
Code: Alles auswählen
Procedure.Integer *HerDamit()
Static da.i
ProcedureReturn @da ;Hier wird ein Pointer zur Static Variable da zurück gegeben
EndProcedure
*HerDamit()\i = 5 ;Hier wird somit der Inhalt von da.i geändert
Debug *HerDamit()\i ;Und hier nochmal ausgegeben
Oder zumindest sowas hier.
Code: Alles auswählen
Procedure.Integer HerDamit()
Protected da.Integer ;Static ist hier nicht notwendig
da\i = 6
ProcedureReturn da ;Hier wird die Variable samt Strukturinhalt kopiert und die Kopie zurück gegeben
EndProcedure
Define.Integer yeah.Integer
yeah = HerDamit() ;Die Kopie wird dann yeah.Integer zugewiesen
Debug yeah\i ;und der dahinter liegende Wert ausgegeben