|
发表于 2019-1-27 19:46:35
|
显示全部楼层
广东省*
我来吐槽一点,
文本型: 可以忽略,结构就是 数据+字节0
字节型: 也可以忽略
字节集: 整体结构是 8+数据+8, 前面8个字节: 标识1+字节集长度,后面8个字节是8个171 (正规格式,预留的8字节,用处也是很多的 当然你构造时去掉不影响)
数组: 同上。(标识里边的长度就是成员数而不是字节数了。 数据非小于5字节集的一律是4字节指针,)
其他的基础类型就可以忽略了。
预留的8字节171有什么用呢,
用处1:搜索内存{171,171,171,171,171,171,171,171}可以定位数组或字节集,防止别人用这种方式定位可以将预留字节集改变比如改成{1,1,1,1,1,1,1,1},也是不影响使用的
还有其他的用处 举个简单的 字节集快速转文本例子:
正常情况的字节集转文本就是,申请字节集长度+1 的内存,再复制字节集数据到内存(核心库的就是这种模式)
这样要是数据量大时,或需要频繁时,就会慢,
快速转:
直接往数据字节集数据后面预留的首字节写字节0,就成文本了。
缺点是有的,得保证转换的内存块不会被回收,不然会崩溃,还有就是转完后就不要再写原本的字节集了 |
评分
-
查看全部评分
|