Hallo,
ich habe einen eigenen Zeichensatz für mein GLCD erstellt und möchte nun
konstante Strings anlegen. Für das 'ü' muss ich bei meinem Zeichensatz
0x5d verwenden.
Will ich nun den String "Zurück" konstant im Flash abgelegen würde man
ja schreiben:
1 | char PROGMEM string[] = "Zur\x5Dck";
|
\x ist ja die Escape-Sequenz für einen HEX-Code, aber wieviele Stellen
wertet der GCC als HEX aus?
Im obigen Beispiel scheint es so, als würde das c auch noch mit als
HEX-Ziffer ausgewertet werden. Jedenfalls zeigt meine print-Funktion
weder das korrekte 'ü' noch das darauf folgende 'c' an.
Schreibe ich
1 | char PROGMEM string[] = "\x5D\x5D\x5D\x5D";
|
werden korrekt "üüüü" angezeigt.
Ist das nun ein Bug im GCC?
Laut ANSI-C sind das meiner Meinung nach nur 2 Ziffern:
http://www.liquifried.com/docs/useful/Cescapeseq.html
Gruß,
Dominik