|
#[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なので、コンパイルエラー
}