Seite 1 von 1

Wann Macro, wann Procedure einsetzen?

Verfasst: 15.06.2006 13:17
von PBZecke
Hallo!

Ich habe mal ne Frage zu Makros. Ich hab mir das mal in der Hilfe
angeschaut, sehe aber für mich keinen Einsatzgrund, den es aber ja mit
Sicherheit gibt, sich mir nur nicht erschließt!

Könnt ihr mir vielleicht mal ein Einsatzbeispiel bringen in dem ein Macro
eindeutig besser geeignet als eine Procedure ist? Ich sehe da wahrscheinlich
den Wald vor lauter Bäumen nicht :oops:

Verfasst: 15.06.2006 14:01
von ts-soft
Ein Macro wird an der Stelle des Aufrufs komplett eingefügt. Dadurch fällt also ein Procedure-Aufruf weg und es geht schneller. Die Exe wird aber grösser, wenn das Macro öfters aufgerufen wird, weil dort immer der komplette Code eingefügt wird.

Jetzt mußte nur abwägen, Geschwindigkeit - Dateigrösse

Wobei, mit Macros kann man ein paar Sachen anstellen, die sonst nicht möglich wären

Verfasst: 15.06.2006 14:05
von PBZecke
>> Wobei, mit Macros kann man ein paar Sachen anstellen, die sonst nicht möglich wären

Genau das möchte ich näher wissen. Den Unterschied zwichen Macro und
Procedure habe ich der Hilfe entnehmen können, hab es gelesen, auch wenn
in meiner Signatur was anderes steht :lol:

Bis jetzt sehe ich keinen Vorteil im Einsatzt eines Macros gegenüber einer
Procedure.

Verfasst: 15.06.2006 14:39
von Zaphod
Macros haben in der Benutzung auch keinen Vorteil. Im gegenteil, unter umständen können sie zu schwer auffindbaren Fehlern führen.

Sie können aber auch durchaus große steigerungen in der Ablaufgeschwindigkeit bringen.

Macros setzt man typischerweise da ein, wo man sonst nur eine sehr kleine Prozedur geschrieben hätte.

Verfasst: 15.06.2006 16:10
von remi_meier
Beispiel:

Code: Alles auswählen

Macro DQ
  "
EndMacro

Macro Assert(x)
  CompilerIf #pb_compiler_debugger
  If Not (x)
    Debug "Error: "+DQ#x#DQ+" was false in line "+Str(#pb_compiler_line)
    CallDebugger
  EndIf
  CompilerEndIf
EndMacro

x = 1
y = 2
Assert(x < y)
Assert(x > y)