我在python中拥有的是
string lenght = 4
,我可以解压缩以获得一些值。
在C中
在python上是否有相当于此函数的功能?答案 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*
字符串。