Zahlen- Define als String



  • Hallo an alle,

    ich habe das Problem dass wir das folgende
    define so definiert haben:

    #define MASCHINEN_NR   57337
    

    das wurde dann z.B. so verwendet:

    int nMaschinenNr = MASCHINEN_NR;
    

    nun soll das ganze aber in einen String
    umgewandelt werden:

    #define MASCHINEN_NR   57337_1
    char strMaschinenNr[20] = " MASCHINEN_NR ";
    

    so wie hier dargestellt funktionierts natuerlich nicht,
    aber genau dafuer such ich ne Loesung.
    Mein Problem ist, dass ich das define nicht in

    #define MASCHINEN_NR   "57337_1"
    

    abaendern kann.

    Weis vielleicht von euch jemand ne Loesung?

    Gruss Ulli



  • Dafür gibt es den Präprozessor-Operator #:

    #define str(x) str2(x)
    #define str2(x) #x
    
    char strMaschinenNr[20] = str(MASCHINEN_NR);
    

    (die Zwischenstation ist notwendig, weil der Präprozessor sonst das übergebene Makro nicht auswerten würde)



  • Vielen Dank fuer die superschnelle Antwort,

    Problem geloest und wieder was dazu gelernt,
    nochmals Danke!


Anmelden zum Antworten