 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 05.07.2009, 15:12 Titel: [Erledigt] Makro |
|
|
Da ich eine einfache Implementierung von Einfach-Verketteten-Listen für verschiedene Datentypen benötige, will ich nun ein Makro erstellen, damit ich den Code nicht jedes Mal kopieren muss.
Code: | #macro LL_Add(Datentyp, Grundtyp, Parameter)
dim Anzahl as Integer
dim ElementA as Datentyp ptr
dim ElementB as Datentyp ptr
dim q as integer
dim tmpIndex as Integer
Anzahl = this.##Grundtyp##Count()
ElementA = new Datentyp(Parameter)
if Anzahl = 0 then
this._##Grundtyp = ElementA
ElementA->_next = 0
return 0
else
if index < 0 or index > Anzahl then tmpIndex = Anzahl else tmpIndex = index
ElementB = this._##Grundtyp
for q = 1 to tmpIndex-1
ElementB = ElementB->_next
next
if tmpIndex = 0 then
ElementA->_next = this._##Grundtyp
this._##Grundtyp = ElementA
else
ElementA->_next = ElementB->_next
ElementB->_next = ElementA
EndIf
EndIf
return 0
#endmacro |
Dabei bin ich (unter anderen) auf folgendes Problem gestoßen:
Ich möchte eine Parameterliste als Parameter an das Makro übergeben. In dieser Zeichenkette kommen Beistriche vor. Wie kann ich diese übergeben? (ohne Anführungszeichen am Anfang und Ende hinzuzufügen)
Code: | error 89: No matching overloaded function, LYRICS3BILD.constructor(byref as string, byref as string, byref as string) in 'LL_Add(Lyrics3Bild,Bild,BildDatei)'
Element not defined, ElementA in 'LL_Add(Lyrics3Bild,Bild,BildDatei)'
Element not defined, for in 'LL_Add(Lyrics3Bild,Bild,BildDatei)'
warning 12(0): Implicit variable allocation, q
warning 4(1): Suspicious pointer assignment
error 33: Expected 'END IF' in 'LL_Add(Lyrics3Bild,Bild,BildDatei)'
Element not defined, this in 'LL_Add(Lyrics3Bild,Bild,BildDatei)' |
Ich habe bis jetzt noch keine Makros verwendet. Ist es ungefähr richtig, so wie ich es obig versucht habe? Gibt es eine bessere Lösung als Markos für meine Problemstellung?
Kann man sich anzeigen lassen, wie der Compiler die Makros expandiert? _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Zuletzt bearbeitet von St_W am 05.07.2009, 20:06, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|