bei macros mußt du auch beachten, das die variablen für die parameter ja nicht protectet werden oder dergleichen, weil ja kein neuer namensraum entsteht. du mußt also namenskonflikte vermeiden, indem du ausgefallene namen benutzt, zum beispiel __item, statt item.
delete
wenn du ForEach benutzt, kannst du das ResetList() auch weg lassen 
bei macros mußt du auch beachten, das die variablen für die parameter ja nicht protectet werden oder dergleichen, weil ja kein neuer namensraum entsteht. du mußt also namenskonflikte vermeiden, indem du ausgefallene namen benutzt, zum beispiel __item, statt item.
bei macros mußt du auch beachten, das die variablen für die parameter ja nicht protectet werden oder dergleichen, weil ja kein neuer namensraum entsteht. du mußt also namenskonflikte vermeiden, indem du ausgefallene namen benutzt, zum beispiel __item, statt item.
Stimmt nicht, z.b: ist
Ist doch viel besser als 3 mal hinzuschreiben oder?
Code: Alles auswählen
Macro EroorRequester
Messagerequester("Error","Ein Fehler ist aufgetreten bitte benachtichtigen Sie den (...) unt tuen Sie das (....) und dies (...) ")
endmacro-
DarkDragon
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Zeitfresser? Ich glaube du verstehst Makros garnicht.wasser hat geschrieben:macros mit einer zeile bringen nichts sind, sind zeitfresser.
mfg
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
hm... ein paar von den Macros oben sehen aber seltsam aus...
funktionieren die überhaupt?
ich mein, z.b.
Struc ist doch keine variable, sondern eine literaleinsetzung...
die muss doch von nem Lattenzaun gefolgt werden, oder?
müsste das nicht so aussehen?
oder kann er das noch als standard-Parameter handlen...
funktionieren die überhaupt?
ich mein, z.b.
Code: Alles auswählen
Macro CreateList(List, Struc)
Global NewList List.Struc()die muss doch von nem Lattenzaun gefolgt werden, oder?
Code: Alles auswählen
Macro CreateList(List, Struc)
Global NewList List.Struc#()oder kann er das noch als standard-Parameter handlen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
-
DarkDragon
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Kaeru Gaman hat geschrieben:hm... ein paar von den Macros oben sehen aber seltsam aus...
funktionieren die überhaupt?
ich mein, z.b.Struc ist doch keine variable, sondern eine literaleinsetzung...Code: Alles auswählen
Macro CreateList(List, Struc) Global NewList List.Struc()
die muss doch von nem Lattenzaun gefolgt werden, oder?
müsste das nicht so aussehen?Code: Alles auswählen
Macro CreateList(List, Struc) Global NewList List.Struc#()
oder kann er das noch als standard-Parameter handlen...
Ich frag mich sowieso wann man den "Lattenzaun" benötigt und wann nicht.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Die Raute wird immer dann benoetigt , wenn, wie DD schon schrieb,
man das Wort erweitern moechte. Dabei zaehlen aber wohl nur die
gleichen Zeichen wie bei einer Variabel.
CreateList2 wird ohne Raute nicht gehen.
man das Wort erweitern moechte. Dabei zaehlen aber wohl nur die
gleichen Zeichen wie bei einer Variabel.
Code: Alles auswählen
Macro DQ
"
EndMacro
Macro CreateList(List, Struc)
Debug DQ Global NewList List.struc() DQ
EndMacro
Macro CreateList2(List, Struc)
Debug DQ Global NewList __#List#_.struc() DQ
EndMacro
CreateList(myList, LONG)
CreateList2(myList, LONG)
CreateList2 wird ohne Raute nicht gehen.
DarkDragon hat geschrieben:
Hat jemand ähnliche Erfahrungen gemacht?
PS: Bitte nicht nach dem Code fragen, weiß nicht mehr, wobei es war...
Schon klar, das Macro wird ja beim kompilieren ersetzt. DENNOCH: ich habe bei einem Programm klar festgestellt, dass der Code mit Marco langsamer lief! Interessanterweise auch als kompilierte EXE. Ich habe das aber bis heute vor der ganzen Welt verschwiegen, weil es so unlogisch ist, dass es nicht sein kann, weils nicht sein darf.------
wasser hat Folgendes geschrieben:
macros mit einer zeile bringen nichts sind, sind zeitfresser.
mfg
------
Zeitfresser? Ich glaube du verstehst Makros garnicht. Confused Prozeduren werden aufgerufen, Makros nicht!
Hat jemand ähnliche Erfahrungen gemacht?
PS: Bitte nicht nach dem Code fragen, weiß nicht mehr, wobei es war...
PB 5.72
- 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
Lass den Marco wieder aus der Exe, den brauchen wir nochHyper hat geschrieben:ich habe bei einem Programm klar festgestellt, dass der Code mit Marco langsamer lief! Interessanterweise auch als kompilierte EXE.
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

