BD
Size: a a a
BD
Э
#[repr(packed)] на arm? при обращении к полю струтуры (но не к первому) все падает. при условии, что те же плюсы это осиливают и работает как надоD
#[repr(packed)] на arm? при обращении к полю струтуры (но не к первому) все падает. при условии, что те же плюсы это осиливают и работает как надоЭ
D
EB
D
Э
let unpacked: [u8; N] = unsafe { transmute(packed) }; или что-то вроде того.EB
D
D
D
Ct
Э

Э
EB
Ct
Э
struct Unpacked {
i: i8,
f: f32
}
impl Unpacked {
fn from_packed(pack: CppStruct) -> Self {
const SIZE: usize = mem::size_of<CppStruct>();
let buf: [u8; SIZE] = unsafe { mem::transmute(pack) };
Self { i: buf[0] as i8, f: f32::from_ne_bytes(buf[1..]);
}
}