【发布时间】:2013-01-24 03:14:33
【问题描述】:
我有一个具有以下结构的 C++ 应用程序写入文件。现在我需要使用python解组它们,这里的基本问题是如何在python中反映pragma pack选项。
C++结构
#pragma pack(1)
struct abc
{
unsigned char r1;
unsigned char r2;
unsigned char p1;
unsigned int id;
};
#pragma pack()
现在,结构体大小是7 not 8,这个数据被写入一个数据文件。如何使用 python 检索这些数据。
注意:
1.我用的是ctypes,上面的结构是一个示例结构。
ctypes 使用结构和联合的本地字节顺序。要构建具有非本机字节顺序的结构,您可以使用 BigEndianStructure、LittleEndianStructure、BigEndianUnion 和 LittleEndianUnion 基类之一。这些类不能包含指针字段
以上信息均来自python docs,不深究。
【问题讨论】:
标签: python struct alignment ctypes