Python中的struct struct.unpack等价物

时间:2016-01-21 08:21:49

标签: python c

我在python中拥有的是

  

string lenght = 4

,我可以解压缩以获得一些值。

在C中

在python上是否有相当于此函数的功能?

1 个答案:

答案 0 :(得分:2)

在C中,没有像这样“打包”的概念。每当你有一个char缓冲区,如

char buf[128];

您是将它视为字符串还是复杂的数据结构取决于您自己。最简单的方法是定义struct并从数组中来回复制数据。

struct MyStruct{
  int data1;
  int data2;
};

char buf[sizeof(struct MyStruct)];
struct MyStruct myStruct;
myStruct.data1 = 1;
myStruct.data2 = 2;
memcpy(buf, &myStruct, sizeof(struct MyStruct));

请注意,这里可能会发生一些包装/填充。例如,如果结构中有short,则编译器可以使用4个字节。当您必须使用指针时,这也会失败,例如结构中的char*字符串。