I understand that it enumis similar to unionin C, and the system will allocate the largest of the data types in the enumeration.
enum E1 {
DblVal1(f64),
}
enum E2 {
DblVal1(f64),
DblVal2(f64),
DblVal3(f64),
DblVal4(f64),
}
fn main() {
println!("Size is {}", std::mem::size_of::<E1>());
println!("Size is {}", std::mem::size_of::<E2>());
}
Why E1is it occupying 8 bytes, as expected, but E2occupying 16 bytes?
source
share