
Code: Alles auswählen
Macro jump(a,b,label)
Goto label#1:
Debug a
Goto label#2:
label#1:
Debug b
label#2:
EndMacro
r=3
s=4
jump(r,s,jumphere)
jump(r,s,jumpthere)

...und Hallo an alle

Code: Alles auswählen
Macro jump(a,b,label)
Goto label#1:
Debug a
Goto label#2:
label#1:
Debug b
label#2:
EndMacro
r=3
s=4
jump(r,s,jumphere)
jump(r,s,jumpthere)
Jep. Richtig nützlich wäre sowas, wenn das nicht nötig wäre.STARGÅTE hat geschrieben:Na ich weiß nicht so recht, du musst dir ja totzdem bei jedem Aufruf einen neuen Label-Präfix ausdenken ...
klar ist es sinnfrei... aber es geht um's PrinzipNino hat geschrieben:Jep. Richtig nützlich wäre sowas, wenn das nicht nötig wäre.STARGÅTE hat geschrieben:Na ich weiß nicht so recht, du musst dir ja totzdem bei jedem Aufruf einen neuen Label-Präfix ausdenken ...
Außerdem ist das Beispiel ziemlich sinnfrei, das macht nämlich nichts anderes als Debug b.
Naja, aber in jedem Falle schneller, als Du es wahrnehmen kannstvocalid hat geschrieben:Prozedurenaufruf ist viel zu lahm....
Dass man in der "Tipps & Tricks"-Abteilung sinnfreie Beispiele postet ist alles andere als klar.vocalid hat geschrieben:klar ist es sinnfrei... aber es geht um's Prinzip
Erstens: Ein Macro wird nicht "aufgerufen", da es zu Kompilerzeiten einfach ersetzt wird.vocalid hat geschrieben:PS. wenn ich bei einer App pro Sekunde 1'000'000 ein Makro oder 1'000'000 eine Procedur aufrufe, macht sehr wohl einen bemerkbaren Zeitunterschied aus.
Das ist richtig. Allerdings bezweifel ich die Notwendigkeit von Goto im allgemeinen und sowieso innerhalb von Macros.vocalid hat geschrieben:Es ist ohne den kleinen Trick unmöglich in Makros Labels einzubauen weil sonst ein Error wegen 2-fach oder mehr gleiche Labels....
Das liegt vermutlich daran, dass du vorher (bei einem Prozeduraufruf) den String immer als Kopie übergeben hast, was natürlich langsammer ist.vocalid hat geschrieben:Ich bin gerade daran eine kleine Stringsuchroutine zu schreiben, in Tests habe durchaus wegen solchen kleinen Tricks einen grossen Zeitvorteil