west wrote:
> habe mir die Definition von __PACKED_PRE und __PACKED_POST gesucht:
>
> #define __PACKED_PRE __packed
> #define _PACKED_POST __attribute_ ((_packed_))
>
> Ich verstehe diese Struktur nicht (Warum __PACKED_PRE und __PACKED_POST)
Kann es sein, dass da noch ein paar #if in der Nähe sind.
Ansonsten: Da wirst du wohl dein Compilerhandbuch bemühen
müssen. Das ist alles Nicht-Standard Zeugs.
Einige Compiler won solche Nicht-Standard Zusatzangaben
vor dem Datentyp sehen, andere hinter dem Datentyp wieder
andere überhaupt als Abschluss der Definition.
Ich schätze mal der Programmierer wollte sich hier eine
gewisse Flexibilität einbauen um verschiedene Compiler
befiedigen zu können.
Der eine möchte es sehen als
__packed struct xy { ... };
der andere will haben
struct _attribute_ ((_packed_)) xy { ... };
und so hat er halt den kleinsten gemeinsamen Nenner
gesucht und für sich definiert, dass er das immer als
PRE struct POST xy { ... };
schreibt und per Makro PRE bzw POST auf den richtigen Wert
bzw auf leer setzt.
Das alles ist jetzt aber aus der holen Hand geraten. Such mal
die Umgebung der PRE und POST Makros ab, ob die in einem #if
eingeschlossen ist, dass compilerspezifisch gesetzt wird.