S-JIS[2025-02-01] 変更履歴

Rust repr属性

Rustのrepr属性のメモ。


概要

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

単純な列挙型


属性へ戻る / Rustへ戻る / 技術メモへ戻る
メールの送信先:ひしだま