* Bernhard Walle
Hallo,
folgende Zeile Code habe ich irgendwo gefunden (ist jetzt egal woher):
unsigned char buf[20]; scanf("%X %X %X", (unsigned int*)buf, (unsigned int*)buf+1, (unsigned int*)buf+2);
Sinn des Ganzen ist dass eine Zeile der Form "01 23 AB" von Hexziffern eingelesen werden soll wobei zwei Hexziffern ein Byte darstellen sollen.
Es funktioniert nicht und man macht sowas auch nicht unbedingt. Nur verstehe ich das Ergebnis nicht ganz, im Speicher steht dann
buf[0] = FF buf[1] = 0 buf[2] = 0
Ich könnt's mir eigentlich nur erklären wenn man davon ausgeht dass scanf() die Werte von rechts nach links füllt (und das Ganze auf einer Little-Endian-Maschine läuft, was ja bei IA32 der Fall ist).
Blöder Denkfehler: Ich habe (unsigned int*)buf + 1 mit (unsigned int*)(buf + 1) verwechselt. Jetzt ist es klar. Gruß, Bernhard -- _________ http://www.bwalle.de _________________________________________________ "Damn the torpedoes. Full speed ahead" -- Capt. David Farragut