[過去ログ]
Rust part16 (1002レス)
上
下
前
次
1-
新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
697
: 2022/09/10(土)20:36
ID:BhJh8aSd(5/5)
AA×
>>693
外部リンク[html]:doc.rust-lang.org
[
240
|
320
|480|
600
|
100%
|
JPG
|
べ
|
レス栞
|
レス消
]
697: [sage] 2022/09/10(土) 20:36:28.31 ID:BhJh8aSd >>693 let a = ...; let mut a = a; みたいに書いた場合、一個目のaと二個目のaは別の変数扱いでそれぞれ個別に領域が割り当てられるよ 二個目のaに格納されるのはaの値で、ポインタじゃないから一個目のaが書き込み不可な領域に格納されていたとしても 二個目のaのために割り当てられた読み書き可能な領域に一個目のaの値がコピーされるような動作になるはず 最適化によって一個目のaと二個目のaが同じ領域を使い回すようになるかもしれないけど、二個目のa定義後はその領域に対する書き込みは可能なことが保証されてるはず transmuteを呼び出した場合も同じで、 transmute(a) という呼び出しをした場合transmuteに渡されるのはaの値なので、二個目のaの定義後は問題なくaに書き込めるはず ただし、transmuteに&aを渡して&mutに変換するみたいなことをすると未定義動作になるから注意は必要 https://doc.rust-lang.org/reference/behavior-considered-undefined.html > Mutating immutable data. All data inside a const item is immutable. Moreover, all data reached through a shared reference or data owned by an immutable binding is immutable, unless that data is contained within an UnsafeCell<U>. http://mevius.5ch.net/test/read.cgi/tech/1656285423/697
みたいに書いた場合一個目のと二個目のは別の変数扱いでそれぞれ個別に領域が割り当てられるよ 二個目のに格納されるのはの値でポインタじゃないから一個目のが書き込み不可な領域に格納されていたとしても 二個目ののために割り当てられた読み書き可能な領域に一個目のの値がコピーされるような動作になるはず 最適化によって一個目のと二個目のが同じ領域を使い回すようになるかもしれないけど二個目の定義後はその領域に対する書き込みは可能なことが保証されてるはず を呼び出した場合も同じで という呼び出しをした場合に渡されるのはの値なので二個目のの定義後は問題なくに書き込めるはず ただしにを渡してに変換するみたいなことをすると未定義動作になるから注意は必要
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 305 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
ぬこの手
ぬこTOP
0.049s