Perl在C中解包“S *”等价物

前端之家收集整理的这篇文章主要介绍了Perl在C中解包“S *”等价物前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在理解Perl在我正在阅读的一些代码中解压缩,特别是使用S *模板.

$data = "FF";
print "$data - ",unpack("S*",$data),"\n";
# > FF - 17990

> C中的这个等价物是什么?
>为什么?

非常感谢您的帮助

解决方法

你在C中的代码看起来(大致)像这样:

const char *data = "FA";
unsigned short s;
memcpy( &s,data,strlen(data) );
printf("%s = %d\n",s);

这仅处理具有两个字符的情况,而解包(‘S *’,…)将返回与其输入对应的短按列表.

为什么?打包和解包的主要动机之一是使二进制数据与C结构更容易交换.

perlpacktut是一个很好的起点.

猜你在找的Perl相关文章