Hallo,
Holger Bourquain bourqu@rcs1.urz.tu-dresden.de schrieb:
#define SWAPBYTES(c) (((c>>8) && 0x000000FF) & ((c<<8)&&0x0000FF00)
Das ist jetzt wohl voellig aus dem Ruder gelaufen. So tut es zwar irgendwas, nur keine Bytes vertauschen.
Zur Klarheit hier eine ordentliche Version (eine andere war irgendwo schon mal aufgeschrieben):
#define SWAPBYTES(c) ((((c) >> 8) & 0377) | (((c) & 0377) << 8))
Das sollte sogar funktionieren, egal ob 16-, 18-, 24-, 32- oder 36-Bit-Prozessor und egal, ob c vorzeichenbehaftet ist oder nicht.
Wenn ich jetzt keinen gravierenden Fehler eingebaut habe, sollten wir dieses Thema abschliessen, denn das ist eher C als Linux.
Holger