Seite 1 von 1

[Macro] Allocate/FreeStructure()

Verfasst: 26.08.2014 08:00
von Bisonte
Moin moin.

Wenn man sich bei PB5.30 erstmal an das AllocateStructure() und FreeStructure() gewöhnt hat,
und dann wieder in der LTS Version am arbeiten ist, vermisst man was.

Da ich mir das nicht abgewöhnen konnte und immer brav vom Compiler mit Fehlermeldungen
attackiert wurde, bastelte ich mir folgende Macros :

Code: Alles auswählen

Macro _AllocateStructure(Adress, StructureName)
  
  CompilerIf #PB_Compiler_Version >= 530
    Adress = AllocateStructure(StructureName)
  CompilerElse  
    Adress.StructureName = AllocateMemory(SizeOf(StructureName))
    If Adress
      InitializeStructure(Adress, StructureName)
    EndIf
  CompilerEndIf

EndMacro
Macro _FreeStructure(Adress, StructureName)
  
  CompilerIf #PB_Compiler_Version >= 530
    FreeStructure(Adress)
  CompilerElse
    If Adress
      ClearStructure(Adress, StructureName)
      FreeMemory(Adress)
    EndIf
  CompilerEndIf

EndMacro
Nun hab ich mir angewöhnt den Unterstrich vorneweg zu schreiben und der Compiler bleibt ruhig,
egal welche PB Version. (Man kann sich die Macros in eine Resident Datei packen und muss sie dann
nicht mehr inkludieren)

Verfasst: 26.08.2014 09:35
von CodeCommander
Warum machst du mit Unterstrich? Brauchst du doch nicht. Wenn AllocateStructure vorhanden is dann wird durch das echte AllocateStructure ersetzt wenn nicht dann wird AllocateMemory benutzt. Sonst musst du überall ein Unterstrich davor setzen == Mehr unnötiger Aufwand.
Aber danke den Code :allright:

Re: [Macro] Allocate/FreeStructure()

Verfasst: 26.08.2014 11:13
von SBond
Ich denke mal, dass er damit seine Makros definiert.
Ich mache es bei mir zumindest so.

__Fkt() -> Makro (oder FKT() in c++)
_Fkt() -> eigene Prozedur
Fkt() -> PB-Funktion
Fkt_() -> API

...aber das ist wohl auch Geschmackssache.