Python ctypes:一个字节变量

时间:2012-11-14 11:18:59

标签: python ctypes

使用python struct pack('<B',1)将值正确地<01>打包到一个字节但是使用ctypes我无法得到类似的结果。

是否可以使用ctypes获得相同的结果?

c_byte似乎是4字节<01000000>

添加了示例代码。

class TEST(Structure):
    _fields_ = [("int", c_int),("byte", c_byte)]

test = TEST(2,1)
print test.int
print test.byte

#bytes
print hexlify(buffer(test)[:])

现在打印

2
1
0200000001000000

字节应该是0200000001.是因为缓冲区调用还是应该以某种方式声明字节alligment?

1 个答案:

答案 0 :(得分:2)

这很可能是因为对齐/填充,请使用_pack_设置:

class TEST(Structure):
    _pack_ = 1
    _fields_ = [("int", c_int),("byte", c_byte)]

test = TEST(2,1)    
print hexlify(test)

将打印0200000001