|
#[repr]は、構造体や列挙型のアライメントを指定する属性。
構造体に#[repr(C)]を付けると、C言語形式のアライメントになる。
#[repr(C)] pub struct MyStruct1 { value1: i32, value2: i32, }
列挙型に#[repr(i32)]や#[repr(u8)]を付けると、実体はその値になる。
#[repr(i32)] enum MyEnum { A, B, C, }
#[repr(u8)] enum MyEnum { A, B, C = -1, ←u8の範囲は0〜255なので、コンパイルエラー }