为什么锈病用两个字节来表示这个枚举只有一个是有必要吗?

问题描述 投票:4回答:1

这似乎是足够聪明,只用一个字节为A,但不够聪明使用一个字节为B,即使只有8 * 8 = 64点的可能性。有什么办法哄锈算出这个还是我不得不手动实现更紧凑的布局?

Playground link.

#![allow(dead_code)]

enum A {
    L,
    UL,
    U,
    UR,
    R,
    DR,
    D,
    DL,
}

enum B {
    C(A, A),
}

fn main() {
    println!("{:?}", std::mem::size_of::<A>()); // prints 1
    println!("{:?}", std::mem::size_of::<B>()); // prints 2
}
enums rust memory-layout
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.