服务端的程序使用delphi7写的,需要给IOS传输流数据,delphi7里用结构体存储的数据,然后用的字节数组发给IOS的。我在XCODE里看到很多的结构体里的字段都多了一位,很是不解。红框里是下图的4个属性的值,01为长度,46才是有效的值。
后来在网上搜了一下,才明白其中的道理。delphi7里定义的结构体使用的ShortString类型。
ShortString 是一种比较古老的 Pascal 字符串格式,它最多只能容纳
255
个字节的字符。当我们声明一个 ShortString 类型的变量时,Delphi 会自动申请
256
个字节的内存空间给该变量,其中第一个字节用来存放字符串的长度,后面的
255
个字节用来存放字符串内容,如果字符串的长度不够
255
个字节,则有多少字符就用多少内存,后面未用到的内存清零。