【发布时间】:2014-04-17 10:54:44
【问题描述】:
我创建了一个具有相应联合的 ctype 位域结构,以便通过单个位域和整数值访问它。 我能够使用包含字段名称的变量来设置单个字段,但现在我想知道特定字段属于哪个字节。 这是我的代码示例:
import ctypes
c_short = ctypes.c_uint16
class Flags_bits(ctypes.LittleEndianStructure):
_fields_ = [
("bitField1", c_short, 1),
("bitField2", c_short, 4),
("bitField3", c_short, 6),
("bitField4", c_short, 1),
("bitField5", c_short, 2),
("bitField6", c_short, 2),
("bitField7", c_short, 6),
("bitField8", c_short, 4),
("bitField9", c_short, 4),
("bitField10", c_short, 1),
("bitField11", c_short, 1)]
class Flags(ctypes.Union):
_fields_ = [("b", Flags_bits),
("asInt", c_short*6)]
def setFlag (flagName, value):
flags = Flags()
setattr(flags.b, flagName, value)
print getattr(flags.b, flagName)
现在我想知道我的标志属于哪个整数(即属于哪个 flags.asInt[i]),我正在寻找一种“get_location”属性来获取结构中的标志位置并从这检索整数的“i”索引,但我找不到任何东西 有没有简单的方法来做到这一点?
提前感谢您的每一个回复!
【问题讨论】:
标签: python ctypes bit-fields