Welchen Zeichensatz hat gcc

OP #2049019
Lesenswert?

Ich habe gerade mein Array für meine 8*7Segment Anzeigen fertig, da 
bemerke ich, dass Gcc gar nicht ASCII hat, bzw. modifiziert ist:

Von ' ' bis '[' stimmt alles, aber dann wird aus dem 'a' ein 'b', obwohl 
zwischen ich mich nicht verzählt habe. Genaueres zum ASCII sieht man 
hier:
http://www.torsten-horn.de/techdocs/ascii.htm

Wie man sieht sind es zwischen 'Z' und 'a' 6 Zeichen. Das habe ich auch.
Muss ich da was umstellen? Oder kennt ihr eine Seite die den richtigen 
Zeichensatz darstellt?
Gast #2049030
Lesenswert?

Dir ist aber schon klar, das das \] versucht wird als ein escapedes 
Zeichen zu parsen und dein String daher nur 5 Zeiche lang ist und nicht 
6?

Um ein \ aus zugeben, muss man das escapen und \\ schreiben.
Da \[ nicht definiert ist wird das wahrscheinlich ignoriert, der String 
ist nur 4 Zeichen lang und der Rest danach sind vielleicht irgendwelche 
Werte, die gerade hinter dem String im RAM standen.

Nur so eine grobe Vermutung.
Aber ich bin mir sicher, das gcc keine Probleme hat die aus einem 'a' 
irgendein anderes Zeichen machen würden.

Ansonsten poste doch mal deinen gesamten code.
OP #2049034
Lesenswert?

Hier mal der Code.

In der Font hab ich ein Zeichen auskommentiert. Das muss man wieder 
einkommentieren, hab ich nur vergessen. Das war bei den Tests oben aber 
aktiv.

EDIT:

Da fehlt ein Zeichen. Laut der Tabelle hab ich alle. Wenn ich einfach 
eine 0, einfüge funktioniert es.
Achja im kleinen a ist ein Fehler: Das 3. bit muss auch wahr sein. Kommt 
davon wenn man das freihand macht.

Das ']' scheint nicht den Wert der ASCII Tabelle zu haben.
Angehängte Dateien:
Moderator #2051010
Lesenswert?

Hat dein Editor kein Syntax-Highlighting? Wenn nicht, schau dir mal an,
wie die Forensoftware die Zeile mit dem ']' einfärbt:
1
    0b01011011, // Z
2
    0b00110000, // [
3
    0b01100100, // \
4
    0b00000110, // ]
5
    0b00000001, // ^
6
    0b00001000, // _

Merkst du etwas?
Gast #2052663
Lesenswert?

Kann mir einer den Zusammenhang von Yalus Beispiel mit dem Problem von 
OP erklären? In Yalus Beispiel wird mit dem \ einfach der Kommentar auf 
die nächste Zeile "erweitert". Bei OPs Beispiel kommt aber kein \ nach 
einem Kommentar vor, sondern es wird eine ungültige Escape-Sequenz 
innerhalb eines String-Literals angegeben, mit der der Compiler nichts 
anfangen kann. Ich sehe den Zusammenhang zwischen den beiden Beispielen 
irgendwie nicht.
#2052669
Lesenswert?

Markus schrieb:
> Kann mir einer den Zusammenhang von Yalus Beispiel mit dem Problem von
> OP erklären? In Yalus Beispiel wird mit dem \ einfach der Kommentar auf
> die nächste Zeile "erweitert". Bei OPs Beispiel kommt aber kein \ nach
> einem Kommentar vor,

Kommt bei ihm genauso vor.
In der Datei 7SegmentASCII.h


> anfangen kann. Ich sehe den Zusammenhang zwischen den beiden Beispielen
> irgendwie nicht.

Der Zusammenhang ist das \ Zeichen, bei dem man vorsichtig sein muss.

Innheralb eines Strings/Character gehört noch das nächste Zeichen dazu 
und die beiden formen eine sog. Escape Sequenz.
Ausserhalb eines Strings, wenn das \ Zeichen das letzte Zeichen einer 
Zeile ist, ist es das Zeilen-Verbindungszeichen und die beiden Zeilen 
werden vom Compiler zu einer einzigen zusammengefügt, ehe dann diese 
Zeile interpretiert wird.
Gast #2052700
Lesenswert?

Ah ok, den Anhang hab ich übersehen.

Ich bin aber trotzdem der Meinung, dass das prinzipiell 2 verschiedene 
Probleme sind.

- \ als Escape Sequenz
- \ als Zeilenverbindungszeichen
haben doch grundsätzlich nichts miteinander zu tun?

So wie der * zur Deklaration eines Pointers verwendet wird, aber auch 
als Indirektionsoperator zum dereferenzieren des Wertes der Variablen 
auf die der Pointer zeigt zum Einsatz kommt. Wenn man es genau nimmt, 
sind das doch auch 2 unterschiedliche Dinge. Vielleicht bin ich da zu 
kleinlich, aber wenn mans genau nimmt ist es doch so oder nicht?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren