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 Zeichenkette

    4.4 Verkettung von Makroparametern

    `


Anmelden zum Antworten