[!] Wozu braucht man Macro?

Fragen und Bugreports zur PureBasic 4.0-Beta.
Jake
Beiträge: 121
Registriert: 28.05.2005 04:10
Wohnort: Berlin

[!] Wozu braucht man Macro?

Beitrag von Jake »

Wenn ich das richtig sehe, kann man doch jedes Macro mit einer Prozedur ersetzten oder?
Also was ist an dem neuen Macro Befehl besser oder anders?
MfG Jake
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ein Macro ersetzt die entsprechenden Codezeilen, so das in der Exe keine zusätzlichen Proceduren entstehen, und keine Geschwindigkeitsverluste
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.
Bild
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag von Konne »

Ist peek usw jetzt so n macro?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

peek ist ein Funktion
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.
Bild
Jake
Beiträge: 121
Registriert: 28.05.2005 04:10
Wohnort: Berlin

Beitrag von Jake »

Schneller ist immer gut.

Jetzt habe ich versucht das Beispiel aus der ReadMe.html zu verstehen.

Code: Alles auswählen

Macro Assert(Expression)
   If (Expression)
      Debug "#True : " + "Expression"
   Else
      Debug "#False : " + "Expression"
   EndIf
EndMacro
Der Aufruf fehlt in der Readme.
Also was auch immer ich dort eingebe, bekomme ich die Fehlermeldung Syntax Error.
Also was muß da rein?

Code: Alles auswählen

Assert(?)
MfG Jake
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Bei mir fehlt da nichts :freak:

Code: Alles auswählen

Macro Assert(Expression)
   If (Expression)
      Debug "#True : " + "Expression"
   Else
      Debug "#False : " + "Expression"
   EndIf
EndMacro

x = 5

Assert(x = 5)
Assert(x < 2)
Assert(x = 10)
Assert(x > 2) 
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.
Bild
Jake
Beiträge: 121
Registriert: 28.05.2005 04:10
Wohnort: Berlin

Beitrag von Jake »

Oh, da hab ich wohl die Hälfte übersehen.
MfG Jake
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Obwohl erst diese Erweiterung die Nützlichkeit von Makros zeigt:

Code: Alles auswählen

Macro DQ
"
EndMacro

Macro ToString(e)
  DQ e DQ
EndMacro

Macro Assert(Expression)
   If (Expression)
      Debug "#True : " + ToString(Expression) + " in line " + Str(#PB_Compiler_Line)
   Else
      Debug "#False : " + ToString(Expression) + " in line " + Str(#PB_Compiler_Line)
   EndIf
EndMacro

x = 5


Assert(x = 5)
Assert(x < 2)
Assert(x = 10)
Assert(x > 2) 
greetz
Remi
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

@remi_meier
schönes Beispiel :allright:
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.
Bild
Gesperrt