ich habe da mal eine simple Frage und denke die Antwort ist genauso einfach. Ich habe mir zwei Macros geschrieben die beiden Teile machen etwa das Selbe. Und zwar Deklarieren die Macros eine Variable "VARIABLE" vom Typ "SIZEVARIABLE"(Variiert je nachdem wie groß "SIZEVARIABLE" ist.). Meine Frage:
Wie kann ich das Macro schöner schreiben oder gibt es eine andere Möglichkeit diese Aktion durchzuführen?
Code: Alles auswählen
EnableExplicit
Macro DEFVSIZE1(VARIABLE, SIZEVARIABLE)
CompilerSelect #True
CompilerCase SIZEVARIABLE >= 0 And SIZEVARIABLE <= 255
Define.a VARIABLE ; 1 byte
CompilerCase SIZEVARIABLE >= 256 And SIZEVARIABLE <= 65535
Define.u VARIABLE ; 2 byte
CompilerCase SIZEVARIABLE >= 65536 And SIZEVARIABLE <= 2147483647
Define.l VARIABLE ; 4 byte
CompilerCase SIZEVARIABLE >= 2147483648 And SIZEVARIABLE <= 9223372036854775807
Define.q VARIABLE ; 8 byte
CompilerEndSelect
EndMacro
Macro DEFVSIZE2(VARIABLE,SIZEVARIABLE)
CompilerIf SIZEVARIABLE < 255
Define.a VARIABLE ; 1 byte
CompilerElse
CompilerIf SIZEVARIABLE < 65535
Define.u VARIABLE ; 2 byte
CompilerElse
CompilerIf SIZEVARIABLE < 2147483647
Define.l VARIABLE ; 4 byte
CompilerElse
Define.q VARIABLE ; 8 byte
CompilerEndIf
CompilerEndIf
CompilerEndIf
EndMacro
; declare variables
DEFVSIZE1(Number1, 64)
DEFVSIZE2(Number2, 1024)
DEFVSIZE1(Number3, 80000)
DEFVSIZE2(Number4, 3500500900)
If OpenConsole()
PrintN("SizeOf(Number1): " + Str(SizeOf(Number1)))
PrintN("SizeOf(Number2): " + Str(SizeOf(Number2)))
PrintN("SizeOf(Number3): " + Str(SizeOf(Number3)))
PrintN("SizeOf(Number4): " + Str(SizeOf(Number4)))
Input()
CloseConsole()
EndIf
End