Seite 1 von 1
Unschönes Makroverhalten
Verfasst: 21.05.2009 21:24
von Batze
Code: Alles auswählen
#Value = 5
#Wert = -1
Macro Test(Var1, Var2, Value)
Var1 = #Value
Var2 = Value
EndMacro
Wert = 10
Test(A, B, Wert)
Debug A
Debug B
Das #Value dann umgewandelt wird ist doch nicht sinn der Sache oder?
Verfasst: 21.05.2009 21:32
von AND51
Das Rautezeichen # wird in PureBasic in Makros dazu benutzt, Variablennamen zu verketten. PB versucht also, hier eine nicht vorhandenen Teil eines Variablennamens mit der Variable "Value" zu verknüpfen, was es ja auch ordnungsgemäß tut.
Da wirst du meines Erachtens nicht drumrum kommen, die Variablen und Kostanten konfliktfrei umzubenennen.
Verfasst: 21.05.2009 21:34
von STARGÅTE
>Das #Value dann umgewandelt wird ist doch nicht sinn der Sache oder?
doch!
Genauso wie Structure davon beeinflusst werden:
Code: Alles auswählen
Structure Test
x.l
y.l
EndStructure
Macro Test(Value, x, y)
Value\x = x
Value\y = y
EndMacro
Wert.Test
Test(Wert, 10, 20)
Debug Wert\x
Debug Wert\y
Darum, den Parametern des Macros immer "einzigartige namen" geben!
also _Value oder _x_ oder so ...
Code: Alles auswählen
#Value = 5
#Wert = -1
Macro Test(Var1, Var2, _Value)
Var1 = #Value
Var2 = _Value
EndMacro
Wert = 10
Test(A, B, Wert)
Debug A
Debug B
Verfasst: 21.05.2009 23:39
von Batze
Naja, aber das verwenden der Raute als Verknüpfungszeichen hat ja an sich ja gerade den Vorteil dass man es sonst nicht irgendwo im Text verwenden kann. Wenn ich das was das Makro macht haben wollte würde ich ja
Code: Alles auswählen
Macro Test(Var1, Var2, Value)
Var1 = ##Value
Var2 = Value
EndMacro
schreiben.
Verfasst: 21.05.2009 23:43
von Kaeru Gaman
woher soll der Macro-Parsen das den wissen, was du da jetzt meinst.
wenn du einen Konflikt erzeugst durch deine Benamsung, bist du halt selbst Schulz.