蚂蚁集团 | Rust 数据内存布局 - Rust精选
utterances-bot opened this issue · 2 comments
utterances-bot commented
蚂蚁集团 | Rust 数据内存布局 - Rust精选
The roots aren't deep but the seeds are planted!
https://rustmagazine.github.io/rust_magazine_2021/chapter_6/ant-rust-data-layout.html
Carolmelon commented
......
数据布局
......
Rust 中数据对齐
struct A { b: u32, c: u16, _pad1: [u8; 2], a: u8, _pad2: [u8; 3], }......
此处应改为:
struct A {
b: u32,
c: u16,
a: u8,
_pad1: [u8, 1],
}
原因:字段c,a之间并无padding,且结构体A实例的大小为8字节。
println!("{}", std::mem::size_of::<A>()); // output: 8
由上可见,A的大小为8字节,而非12字节。
chunshao90 commented
确实,因为对齐到 4,所以 8 就可以了。我修改下原文。