Seite 1 von 1
Pointer in Prozeduren
Verfasst: 15.09.2013 14:50
von Schranz0r
Hi Leute,
kurze und sicher auch idiotische Frage
Ich will eine Prozedur die nur das macht:
dachte mir, da brauchst wohl Pointer also:
Code: Alles auswählen
Procedure INC(*var, value)
*var = *var+value
EndProcedure
Tja, aber geht halt nicht

Ich will den Wert auf keinen Fall "returnen" müssen!
PLS Help

Re: Pointer in Prozeduren
Verfasst: 15.09.2013 14:54
von ts-soft
Code: Alles auswählen
Procedure INC(*var.Integer, value)
*var\i + value
EndProcedure
Define a.i
a = 100
INC(@a, 50)
Debug a
Re: Pointer in Prozeduren
Verfasst: 15.09.2013 15:01
von Schranz0r
Dank dir, ich war so nah dran
Oder gehts auch anders das ich keine Pointer brauch? Aber ohne Return?
Re: Pointer in Prozeduren
Verfasst: 15.09.2013 15:06
von ts-soft
Naja, es geht auch mehr Basic-Like:
Code: Alles auswählen
Procedure INC(*var, value)
PokeI(*var, PeekI(*var) + value)
EndProcedure
Define a.i
a = 100
INC(@a, 50)
Debug a
aber ohne Pointer wohl eher nicht.
Re: Pointer in Prozeduren
Verfasst: 15.09.2013 15:18
von 7x7
Und es geht auch mehr ASM-like

Code: Alles auswählen
a=20
inc a ; einfaches +1...
add a,19 ;...oder einfache addition...oder sub....oder dec...usw.
debug a
In den Compiler-Optionen-> ASM-Unterstützung einschalten
Re: Pointer in Prozeduren
Verfasst: 15.09.2013 19:54
von Chimorin
Es geht auch einfacher
Code: Alles auswählen
EnableExplicit
Global.i var1
Procedure Rechner(zahl.i)
var1 = var1 + zahl
EndProcedure
Rechner(3)
Debug var1
End
Funktioniert natürlich nur mit einer GLOBALEN Variable, da diese programmweit benutzt werden kann (Except: Protected,...).
Re: Pointer in Prozeduren
Verfasst: 15.09.2013 20:02
von helpy
Warum überhaupt eine Procedure verwenden?
In diesem Fall reicht doch wirklich ein Makro:
Code: Alles auswählen
Macro INC( variable, value=1 )
variable + value
EndMacro
Warum überhaupt ein Makro oder eine Procedure?
Re: Pointer in Prozeduren
Verfasst: 15.09.2013 20:15
von Schranz0r
Die ASM-Version ist gut

Auch dir DANKE!