Frage zu Macros

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Frage zu Macros

Beitrag von #NULL »

mir ist immernoch unklar, wie wichtig die wahl der parameter-namen in macros eigentlich ist.
ich hab hier im forum immer codes gesehen, die bei macros möglichst
unwahrscheinliche parameter-namen, wie __param_long__ oder dergleichen
verwenden. und so hab ich es dann einfach nachgemacht und mir angewöhnt.
aber wann ist das überhaupt nötig? klar, wenn ich innerhalb des macros temporäre variablen brauche. aber für die parameter-namen selbst?

z.b. funktioniert das hier problemlos:

Code: Alles auswählen

Macro foo(a)
  a=8
EndMacro

a=3
foo(b)

Debug a
Debug b
vielleicht kann mich mal jemand aufklären.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von NicTheQuick »

Unwahrscheinliche Parameternamen sind nicht notwendig, wie du ja in
deinem Beispiel selbst gut bewiesen hast.
Warum das andere Leute anders machen, kann ich dir nicht sagen. Aber ich
persönlich mache das auch nicht anders als du in deinem Beispiel.
Bild
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

"..und so ward Licht zwischen den
Klauen hinter Makross, dem König
der Substitution."
my pb stuff..
Bild..jedenfalls war das mal so.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

schätze mal, dass sich viele einfach angewöhnt haben,
ihre parameter so zu bezeichnen dass sie sie wiedererkennen.

auch was für ein parameter das ist, also zwei führende underscores für macro-parameter.
und bei proceduren halt nen Präfix für die betreffende Include... usw
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Hier währ es zum Beispiel von Vorteil:

Code: Alles auswählen

macro test(a)
  structuremitvielenElementen\hans\a = a
endmacro
Hier gibts nen Fehler, weil das Macro auch das Struktureelement a ersetzt durch den übergebenen Parameter...

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

Code: Alles auswählen

Macro setX(x_)
  p\x = x_
EndMacro

p.POINT
setX(3)
und z.b. hier brauch man die variation, weil sonst das struktur-feld vermurkst wird.

<edit>
siehe, Scarabol's code 8)
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Da hat wohl einer das aktualisieren vergessen...

hehe

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Antworten