"开箱"在C.

时间:2016-01-22 02:28:41

标签: 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 tuple of size 1

我得到的价值是:

x = 24488.2207

对我来说是正确的。

我想知道 C 中是否有相同的功能可用于此?

1 个答案:

答案 0 :(得分:5)

不需要这样的功能;如果字节顺序已经正确,编译器可以通过指针转换或通过union类型来处理该情况。

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

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

...

$ ./a.out 
24488.220703