Python &引用;“拆包”;在C中

Python &引用;“拆包”;在C中,python,c,unpack,iterable-unpacking,Python,C,Unpack,Iterable Unpacking,我正在将一个脚本从python重写为C。我对C比较陌生 我在PYTHON中有一个变量,其中包含以下值: x = [chr(113),chr(80),chr(191),chr(70)] y = "".join(x) 这将返回y值: y = qP¿F #this is string 现在我要做的是解包这个变量,将它存储到变量z中,以得到我想要的结果。像这样: z = struct.unpack("<f",y) print z[0] #unpack returns a

我正在将一个脚本从python重写为C。我对C比较陌生

我在PYTHON中有一个变量,其中包含以下值:

x = [chr(113),chr(80),chr(191),chr(70)]

y = "".join(x)
这将返回y值:

y = qP¿F           #this is string
现在我要做的是解包这个变量,将它存储到变量z中,以得到我想要的结果。像这样:

z = struct.unpack("<f",y)
print z[0]  #unpack returns a tuple of size 1
这对我来说是正确的


我想知道在C中是否有相同的函数可供我使用?

不需要这样的函数;如果endianness已经正确,编译器可以通过指针转换或通过
union
类型处理这种情况

uint8_t data[4] = {113, 80, 191, 70};

printf("%f\n", (double)(*(float*)data));


不需要这样的功能;如果endianness已经正确,编译器可以通过指针转换或通过
union
类型处理这种情况

uint8_t data[4] = {113, 80, 191, 70};

printf("%f\n", (double)(*(float*)data));


您只是将字节强制转换为浮点。您只是将字节强制转换为浮点。事实上,如果在C中不是那么容易,那么其他语言就不需要提供库来模拟它。事实上,如果在C中不是那么容易,那么其他语言就不需要提供库来模拟它。
$ ./a.out 
24488.220703