By default, Structure and Union fields are aligned in the same way the
C compiler does it. It is possible to override this behaviour be
specifying a _pack_ class attribute in the subclass
definition. This must be set to a positive integer and specifies the
maximum alignment for the fields. This is what #pragma pack(n)
also does in MSVC.
ctypes
uses the native byte order for Structures and Unions. To
build structures with non-native byte order, you can use one of the
BigEndianStructure, LittleEndianStructure, BigEndianUnion, and
LittleEndianUnion base classes. These classes cannot contain pointer
fields.
See About this document... for information on suggesting changes.