2016-01-21 56 views
1

我有蟒蛇是的Python struct.unpack相当于用C

串lenght = 4

,我可以解压得到一些价值。

在Python中,在C中是否有这个函数的等价物?

+0

[是的,有](https://docs.python.org/2/library/struct.html)。 – bereal

+0

你能告诉我它是什么吗? –

+0

对不起,我误解了这个问题,你是在问另一个方向。 – bereal

回答

2

在C中,没有像这样的“包装”的概念。只要你有一个字符缓冲区如

不管你把它像一个字符串或一个复杂的数据结构是由你。最简单的方法是定义一个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*字符串。

+2

另外,永久性可能很重要。 – bereal