Seite 1 von 1

Raute in Makros

Verfasst: 14.02.2011 22:04
von Mok
Heyho.
Ich sehe hin und wieder Macros, in denen nach manchen Macro-Parametern eine Raute steht. Wozu ist das gut?

Code: Alles auswählen

Macro Test (param)
  Debug param
EndMacro
; liefert dasselbe wie
Macro Test (param)
  Debug param#
EndMacro
Nachdem Macro-Aufrufe vom Compiler einfach nur ersetzt werden, müsste die Raute das ganze ja fehlerhaft machen...

Code: Alles auswählen

;Ursprungscode:
Macro Test (param)
  Debug param#
Endmacro
Test(4)

;Code nach dem Kompilieren:
Debug 4# ;<- fehlerhaft?!
Gruß, Mok

Re: Raute in Makros

Verfasst: 14.02.2011 22:08
von RSBasic
Mok hat geschrieben:Ich sehe hin und wieder Macros, in denen nach manchen Macro-Parametern eine Raute steht. Wozu ist das gut?
PureBasic-Hilfe hat geschrieben:[...]Die Makros können rekursiv verwendet werden; wenn jedoch der übergebene Parameter das Verkettungszeichen '#' beinhaltet, wird es nicht erweitert.
[...]
Das spezielle Verknüpfungszeichen '#' kann benutzt werden, um neue Labels oder Keywords (Schlüsselwörter) durch Mischen von Makro-Code und Parameter-Ausdrücken zu erschaffen (Leerzeichen zwischen jedem Wort werden durch das Verknüpfungszeichen nicht akzeptiert).

Re: Raute in Makros

Verfasst: 14.02.2011 22:11
von ts-soft
TFM hat folgendes Beispiel:

Code: Alles auswählen

  Macro XCase(Type, Text)
    Type#Case(Text)
  EndMacro

  Debug XCase(U, "Hello")
  Debug XCase(L, "Hello")