您可以按照此处所述更改ctypes中的包装
默认情况下,Structure和Union字段以与C编译器相同的方式对齐。通过在子类定义中指定 包
类属性,可以覆盖此行为。必须将其设置为正整数,并指定字段的最大对齐方式。这就是#pragma pack(n)在MSVC中的作用。
对于您的示例,这将是:
from ctypes import *class abc(Structure): _pack_ = 1 _fields_ = [ ('r1',c_ubyte), ('r2',c_ubyte), ('p1',c_ubyte), ('id',c_uint)]


