Präprozessor String Konkatinieren



  • Hallo,

    meine Frage ist wie kann ich eine DEFINE Anweisung erst in Single Quotes verpacken als auch in Double Quotes.
    Als Beispiel ich hab ein

    #define SEPERATOR ,
    

    diesen will ich in >>'<< Singe Quotes verpacken damit ich ihn mit

    printf("%c\n", FUNC1(SEPERATOR) );
    // sowohl als auch mit ausgeben kann.
    printf("%s\n", FUNC2(SEPERATOR) );
    

    Wie mache ich das? Bei FUNC2 würde ich auch gerne noch zum SEPERATOR ein Leerzeichen hinzufügen.


  • Mod

    Allgemein für alle Zeichen und insbesondere auch für Kommas ist es nicht möglich, ein Zeichen per Präprozessor in einzelne Anführungszeichen zu packen.

    edit: Aber Idee:

    #define TO_CHAR(c) (#c[0])
    

    Ist zwar nicht das, wonach du fragst, sollte funktionell aber das gleiche erreichen.



  • Ohh schade.
    Vielen Dank für deine schnelle Antwort.


  • Mod

    Macht denn mein Alternativvorschlag nicht, was du letztlich willst? Dir ist doch sicher nicht wichtig, dass da unbedingt ein char-Literal steht, sondern dass da ein char mit einem bestimmten Wert steht.


Anmelden zum Antworten