C语言中的Python struct.unpack等价物

C语言中的Python struct.unpack等价物,python,c,Python,C,我在python中拥有的是一个 字符串长度=4 ,我可以将其解压缩以获取一些值 python上是否有类似于此函数的函数,在C中?在C中,没有这样的“打包”概念。每当您有一个字符缓冲区,例如 char buf[128]; 将其视为字符串还是复杂的数据结构取决于您。最简单的方法是定义一个结构,并从数组中来回复制数据 struct MyStruct{ int data1; int data2; }; char buf[sizeof(struct MyStruct)]; struct MyS

我在python中拥有的是一个

字符串长度=4

,我可以将其解压缩以获取一些值


python上是否有类似于此函数的函数,在C中?

在C中,没有这样的“打包”概念。每当您有一个字符缓冲区,例如

char buf[128];
将其视为字符串还是复杂的数据结构取决于您。最简单的方法是定义一个
结构
,并从数组中来回复制数据

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*
字符串,则此操作也会失败。

。您能告诉我是什么吗?对不起,我误读了问题,您的问题是相反的。请使用。链接指向我认为与您的案例最相关的部分。在C中,字符串是一个字符序列,后跟一个零。因此,声明一个具有足够字节的变量就足够了(除了编码之外,因为字符串是一种抽象)。也许我没有正确理解这个问题。请进一步解释并提供例子。因此,持久性可能很重要。