H.S.T
数组
隐式转为空[]
,指针可切片
,所以读
:
SomeStruct myStruct;
fd.rawRead((&myStruct)[0 .. 1]);
//对pod类型有效
同样的写
:
SomeStruct myStruct;
fd.rawWrite((&myStruct)[0 .. 1]);
对数组
:
SomeStruct[] arr;
fd.rawWrite(arr);
...
arr.length = ... /*期望长度*/
fd.rawRead(arr);
为正确读写长度,读前,你要手动写长度
.
对齐
不是问题,局部变量
已对齐.
不同平台/硬件
间转换时,要自己处理大小头
.
io层
不需要读对齐内存.构字段
需要与文件对齐一致
我
后来发现可以先读进正字节数组
,然后切片
来转为
相应构.
为什么,不加rawRead(ref T t),rawWrite(ref T t)
函数来处理.