14.14.1.11 構造体/共用体アライメントとバイトオーダー

デフォルトでは、StructureとUnionのフィールドはCコンパイラが行うのと同じ方法で アライメントされています。サブクラスを定義するときに_pack_クラス属性を 指定することでこの動作を変えることは可能です。 このクラス属性には正の整数を設定する必要があり、フィールドの最大アライメントを指定します。 これはMSVCで#pragma pack(n)が行っていること同じです。

ctypesはStructureとUnionに対してネイティブのバイトオーダーを使います。 ネイティブではないバイトオーダーの構造体を作成するには、BigEndianStructure、 LittleEndianStructure、BigEndianUnionおよびLittleEndianUnionベースクラスの中の一つを 使います。これらのクラスにポインタフィールドを持たせることはできません。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。