结构体基本结构
from ctypes import *
# 自己定义的结构体必须继承基类Structure
class MyStructure(Structure):
# 结构体成员必须在字段_fields_中,且是可以是一个二元组或三元组
_fields_ = [
("member1", c_int)
]
>>> sizeof(MyStructure)
4
作出以下修改
from ctypes import *
# 自己定义的结构体必须继承基类Structure
class MyStructure(Structure):
# 结构体成员必须在字段_fields_中,且是可以是一个二元组或三元组
_fields_ = [
("member1", c_int)
("member2", c_int, 8)
]
>>> MyStructure.member1
Field type=c_long, ofs=0, size=4>
>>> MyStructure.member2
Field type=c_long, ofs=4:0, bits=8>
——————————————————————————————————
也就是说元组中的第三个参数是位宽,位宽数值设置必须在变量位宽大小之内,
例如说member2成员定义的是int类型,int类型是8bytes(32bits), 如果member2
的位宽数值设置为大于32的数,那么运行的时候会报错。
结构体与数组互换
结构体的使用