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