Hi Leute, hab da so ein kleinen Problem bezüglich einer Codezeile. Ich verstehe sie einfach nicht. Habe sie schon auseinandergenommen und nur Teile davon ausgeführt aber irgendwie komme ich nicht dahinter. Vieleicht könnt ihr mir helfen.
1 | |
|
Anzeige
|
Was bedeutet diese Befehlszeile?Hi Leute, hab da so ein kleinen Problem bezüglich einer Codezeile. Ich verstehe sie einfach nicht. Habe sie schon auseinandergenommen und nur Teile davon ausgeführt aber irgendwie komme ich nicht dahinter. Vieleicht könnt ihr mir helfen.
Es werden fünf Variablen (tag[0]...tag[4]) ausgegeben, und zwar jeweils 2-stellig in Hexadezimal mit Großbuchstaben (ohne Angabe der minimalen Feldbreite, deshalb keine Angabe vor dem Punkt). Am Anfang wird ein STX (0x02, Start of text)-Zeichen, ein 'R' und am Ende ein ETX (0x03, End of text) ausgegeben. "Befehle" gibt es in C übrigens nicht, nur Anweisungen und Operatoren... Die \x02 und \x03 ergeben die ASCII-Zeichen <STX> und <ETX>, sowas nimmt man gern für einfaches RS-232-Framing. Das R wird 1:1 ausgegeben. Die %.2X führen eine Hexadezimalwandlung durch, wobei als Genauigkeit 2 Stellen gefordert sind. Das führt dazu, dass immer (mindestens) zwei Stellen ausgegeben werden, ggf. halt mit 0 gefüllt in der 1. Stelle. Das Format %02X wäre ein Äquivalent dafür. Die 10 hexadezi- malen Stellen werden ohne Zwischenraum aneinander gefügt. Das abschließende \r (ASCII <CR>) beendet den Datensatz. Upps, das '\r' hatte ich glatt übersehen... Danke für die Antworten. Ich möchte nämlich den Inhalt der Variablen mit einem festen Wert vergleichen. Robin Tönniges wrote: > Danke für die Antworten. Ich möchte nämlich den Inhalt der Variablen mit > einem festen Wert vergleichen. Und was hat das jetzt mit der Frage zu tun? Wäre mir neu, dass man mit printf irgendwas vergleichen kann... Ne. Aber ich wusste nicht was in den Variablen drin ist. Weil da die Ausgabe so krass formatiert war. Aha...
Gast
#874762
Eine Formatierung der Ausgabe hat normalerweise niemals einfluss auf den Inhalt der Variable... Deshalb ist dieser printf-Ausdruck unerheblich für dein eigentliches Problem. Schau lieber mal von welchem Typ die Variablen sind und wo sie initialisiert/zugewiesen/geändert werden. Stefan wrote: > Eine Formatierung der Ausgabe hat normalerweise niemals einfluss auf den > Inhalt der Variable... Das ist richtig. Aber ich kann ja nicht einfach in die Variable reingucken. Sondern muss es irgendwie ausgeben. Und wenn ich einfach printf(tag[0]); gemacht habe kam nichts raus. Robin Tönniges wrote: > Und wenn ich einfach > > printf(tag[0]); > > gemacht habe kam nichts raus. Vermutlich, weil dann der anderen Seite das <STX>-<ETX>-<CR>-Framing fehlt. Nö wieso. Ganz normales Terminal benutzt. Häte auch ohne gehen müssen. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|