Strings aus Makros



  • Hi:

    #include <stdio.h>
    #define TXT = abc
    
    int main()
    {
     const char *s = TXT; // ?? 
     printf("%s\n", s);
    }
    

    Ist es moeglich, dass das Programm hinterher "abc" ausgibt, ohne den Inhalt des TXT-Makros mit Anfuehrungszeichen zu versehen?

    Danke!
    -Gunnar



  • dein script würde nen fetten fehler bringen, weil es gleichbedeutend mit dem hier ist:

    #include <stdio.h>
    
    int main()
    {
     const char *s = = abc; // ?? 
     printf("%s\n", s);
    }
    

    wenn schon, dann so:

    #include <stdio.h>
    #define TXT "abc"
    
    int main()
    {
     const char *s = TXT; // ?? 
     printf("%s\n", s);
    }
    


  • Eventuell hilft dir sowas

    #include <stdio.h> 
    #define STRING(_x_) #_x_ 
    
    int main() 
    { 
     const char *s = STRING(abc); 
     printf("%s\n", s); 
    }
    


  • Genau das brauche ich, danke! Aber ich verstehe das Makro nicht. Ist da ein Preprozessoroperator drin, von dem ich nichts weiss?
    -Gunnar



  • Gunnar_ schrieb:

    Ist da ein Preprozessoroperator drin, von dem ich nichts weiss?

    Ja.


Log in to reply