有没有快速简便的方法将结构转换为D中的字节数组?我在D文档中找不到任何东西。
答案 0 :(得分:3)
void[] arr;
MyStruct s;
arr = (&s)[0..1];
所有类型的动态数组(constness仍然适用)隐式转换为void[]
。
答案 1 :(得分:2)
这适合我:
struct Foo
{
int x;
}
void main()
{
Foo foo;
auto bytes = *(cast(byte[Foo.sizeof]*)(&foo));
}
答案 2 :(得分:0)
auto byteArray = (cast(ubyte*) &myStruct)[0 .. myStruct.sizeof];
或使用union
union MyUnion {
MyStruct myStruct;
ubyte[MyStruct.sizeof] byteArray;
}