我正在理解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是一个很好的起点.