>>691
repr(packed)を指定した構造体のフィールドへのアクセスは未定義動作を引き起こす可能性があるからrepr(packed)は基本的には使わない方が良いよ
https://doc.rust-lang.org/nomicon/other-reprs.html#reprpacked
確かにrepr(C)やrepr(Rust)はパディングされる可能性があるけど、フィールドのアラインメントを適切にするために必要なものなので
パディングが問題になるならフィールドのメンバーの順序やサイズを見直すか、フィールドの値を読むのに std::ptr::read_unaligned を使う必要があるよ
https://doc.rust-lang.org/std/ptr/fn.read_unaligned.html
read_unalignedのドキュメントにも書いてあるけど、アライメントが不適切なフィールドへの参照を作るのすら未定義動作になるという落とし穴もあったり、
repr(packed)な構造体の取り扱いにはいろいろと注意が必要になるので、本当に必要なとき以外は使わない方が良いよ
あと、repr(packed)はrepr(packed, Rust)と同じ意味になるので、構造体のフィールドがメモリ上でどのような配置になるかの保証はないよ
フィールドの定義順とメモリ上での順序を同じにしたいのであれば repr(C) または repr(C, packed) と指定する必要があるよ
いずれにせよ今回は全てのフィールドがu8だからrepr(C)でパディングが挿入されることはなく
無駄にメモリを消費することもないよ
どうしてもパディング挿入が心配なら mem::size_ofやmem::align_ofを使って構造体のサイズとアライメントに関するアサーションを加えるのが良いと思う
探検
Rust part16
■ このスレッドは過去ログ倉庫に格納されています
696デフォルトの名無しさん
2022/09/10(土) 20:24:18.78ID:BhJh8aSd■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【裁判】山上徹也被告の妹「この人は母のふりをした旧統一教会の信者だと思いました」「でも、母の形をしているから突き放せなかった」 [1ゲットロボ★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★5 [樽悶★]
- 【速報】 米大使声明 「日本を支えていく」「中国が威圧的手段に訴えるのは断ち難い悪癖」 [お断り★]
- 【7リメイク】『ドラゴンクエストVII Reimagined』では「プレイヤーの時間」を尊重したい…“100時間超”だった原作をテンポ良く現代化 [おっさん友の会★]
- 【安倍晋三元首相銃撃事件】山上被告、45歳まで「生きているべきではなかった」 傍聴席は満席 [ぐれ★]
- 【テレビ】佐野岳 TBS『最強スポーツ男子頂上決戦』収録で重傷… 右膝半月板損傷と靭帯断裂 全治8カ月~9カ月間 [冬月記者★]
- 「あれ?円安加速の戦犯って高市じゃなくて岸田と石破じゃね?」という風潮、急速に高まるwww [759043982]
- 高市コインまもなく158円 [931948549]
- 甘利来日🤗沖縄でトークショー [993451824]
- 日本「中国のレアアースに71%依存してます。2024年のデータです」 ネトウヨ「え?youtube解説と違うんだけど」 [633746646]
- 珍🏡珍
- 名前は早苗です。歳は64歳の総理大臣です。 [358382861]
