Aber daß es zumindest gehen müßte, ist doch auch gut zu wissen, wo ist denn das Problem? Immerhin schreibt Dieter, daß er Angst kriegt
GOTO auch noch variabel möglich?
Ich hab nicht gesagt, daß man es so machen muß und ich fordere auch nichts
Aber daß es zumindest gehen müßte, ist doch auch gut zu wissen, wo ist denn das Problem? Immerhin schreibt Dieter, daß er Angst kriegt
also ist es doch berechtigt, es auch mit Bordmitteln zu machen, wenn es möglich ist. Und Funktions-Pointer (also nix mit GOTO) sind ebenfalls praktisch und auch in Hochsprachen noch gern gesehen.
Aber daß es zumindest gehen müßte, ist doch auch gut zu wissen, wo ist denn das Problem? Immerhin schreibt Dieter, daß er Angst kriegt

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
- Froggerprogger
- Badmin
- Beiträge: 855
- Registriert: 08.09.2004 20:02
Code: Alles auswählen
Macro Goto(x)
!JMP[v_#x]
EndMacro
var = ?mark2
Goto(var) ; mit runden Klammern indirekter Sprung zu Adresse mit Wert in 'var'
End
mark1:
Debug 1
End
mark2:
Debug 2
Goto mark1 ; ohne Klammern normaler Sprung zu Sprungmarke namens 'mark1'
End
!UD2
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> mit reinen PB-Sprachmitteln
Code: Alles auswählen
Procedure Dingens( Nr.l)
Select Nr
Case 1
Bla
Case 2
Blubb
Case 3
Schnarch
EndSelect
EndProcedureDer Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Bla, Blubb und Schnarch sind keine PB-Sprachmittel!!!!1!1!!!1111!!11.5

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
- hardfalcon
- Beiträge: 3447
- Registriert: 29.08.2004 20:46
Vielleicht so ?
Statt "?Proc1" usw , kann man natuerlich auch irgendwelche
Variablen einsetzen. Hauptsache ein Zeiger auf eine Function wird
uebergeben.
Code: Alles auswählen
PrototypeC Proc()
proc = 3
Goto program_start
Proc1:
Debug "call Proc1"
Return
Proc2:
Debug "call Proc2"
Return
Proc3:
Debug "call Proc3"
Return
program_start:
Select proc
Case 1
Test.Proc = ?Proc1
Case 2
Test.Proc = ?Proc2
Case 3
Test.Proc = ?Proc3
EndSelect
Test()
Variablen einsetzen. Hauptsache ein Zeiger auf eine Function wird
uebergeben.
- NicTheQuick
- Ein Admin
- Beiträge: 8835
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Ist das böse, oder kann da nichts passieren?

Code: Alles auswählen
Prototype Jump()
Define a.l
Define Go.Jump
Go = ?mark1
Debug go()
Go = ?mark2
Debug go()
Go = ?mark3
Debug go()
End
mark1:
Debug "Mark 1"
!MOV Eax, 123
Return
mark2:
Debug "Mark 2"
!MOV Eax, 456
Return
mark3:
Debug "Mark 3"
!MOV Eax, 789
Return