Funktion Suffix in einem Makro
-
huhu freunde,
folgendes:
#define Extension(T) T_Func() typdedef struct {.... } MyType; void MyType_Func() { }
kann ich nun das makro nich so:
Extension(MyType);
verwenden, damit er mir die funktion aufruft?
thxx
-
Ja das geht so:
#define Extension(T) T##_Func()
Ich würde dir aber trotzdem von diesem statischen Weg abraten, schaue dir lieber Funktionszeiger an, damit bist du flexibler.
-
Yeahh,
danke das "T##" habe ich gesucht^^ Ja ich verfolg gerade damit nen anderen gedanken.. einfach nur bischen spielerei mit makros:)
Aber ja Funktionspointer sind auch toll;)
DANKE, schönen tag noch;)
-
Ach, noch ne Frage,
folgends
#define Extension(T) Func("T") typdedef struct {.... } MyType; void Func(char* name) { }
nun hätte ich gerne, dass die Funktion mit
Extension(MyType);
nen string mit "MyType" übergeben bekommt! Bekommt man das mit nem Makro hin??
grüßchen
-
Dafür ist das # da:
#define Extension(T) Func(#T)
-
Ich hab auch danach gegoogelt, aber wusste nich genau was für "schlüsselwörter" ich brauch um auf die "#" makro symbolik zu kommen;)
Aber Danke;)
-
MarkoNoob schrieb:
Ich hab auch danach gegoogelt, aber wusste nich genau was für "schlüsselwörter" ich brauch um auf die "#" makro symbolik zu kommen;)
Aber Danke;)
Ach so. Nimm nicht google, sondern frag die Wikipedia nach Präprozessor.
Da steht dann auch gleich "Der C-Präprozessor" mit einem Link zum Hauptartikel.Und dort steht schon mal eine kleine Einführung. Unter anderem auch:
` 4.3 Umwandlung eines Makroparameters in eine Zeichenkette4.4 Verkettung von Makroparametern
`