Wann Macro, wann Procedure einsetzen?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PBZecke
Beiträge: 399
Registriert: 02.09.2004 17:34

Wann Macro, wann Procedure einsetzen?

Beitrag 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:
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... :lol:
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 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
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
PBZecke
Beiträge: 399
Registriert: 02.09.2004 17:34

Beitrag 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.
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... :lol:
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag 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.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag 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)
Antworten