Wie man sehen kann werden Proceduren mit Parametern erstellt. Diese Parameter sollen Optimale Parameter mit der angabe von einem Pointer sein. Leider lässt PureBasic das nicht zu und sagt Syntax Error.
Dein Code ergibt nicht viel Sinn (genauso wie der Titel)
Label entweder direkt verwenden, macht keinen Sinn einen Parameter draus
zu machen oder einer Variable zuordnen.
Procedure proc(*Buffer = #PB_Any) ;<-- Hier funzt es
If *Buffer = #PB_Any : *Buffer = ?label : EndIf
EndProcedure
DataSection
label:
Data.l 432, 532
EndDataSection
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
es ist nicht sonderlich schlimm, wenn man mal was falsch schreibt,
aber das fällt nunmal weniger ins gewicht, wenn man eine
brauchbare erklärung dazuschreibt, was man eigentlich will.
meines Wissens muss ein Defaultwert (Vorgabewert) für einen Optionalen Parameter eine Konstante sein.
Pointer sind aber keine konstanten.
optional = wahlfrei, von lat. optio = freier wille
optimal = bestmöglich, von lat. optimus = der beste
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
;/ ProcedurePointer
Prototype p_Prototype(Param1)
Procedure VordefinierterCallback(Param1)
EndProcedure
Procedure proc(Callback.p_Prototype = 0) ;<-- Hier funzt es
If Callback = 0 : Callback = @VordefinierterCallback() : EndIf
EndProcedure
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
so kann es funktionieren, weil die 0 eine konstante ist, die zur kompilezeit feststeht, deshalb kann sie eingesetzt werden.
und natürlich kann man dann in der ersten zeile darauf reagieren.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
@ts-soft
ich weiß, wie ich das auch sonst machen kann. Dann verwende ich aber mehr Assembler-Befehle, und in meinem Programm ist jede Optimierung des Codes erforderlich.
Wenns anders gehen würde, wäre es trotdem keine Optimierung des Codes,
lediglich eine Optimierung des Sources auf kosten der Compilierzeit. Das
ändert aber nichts an der Ausführungsgeschwindigkeit!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.