C言語なら俺に聞け 163 (987レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
656: デフォルトの名無しさん (ワッチョイ 6a4d-WFrT) [] 2025/02/12(水) 11:20:54.68 ID:OojhOsKe0(1/3) AAS
未定義の動作がどういうことなのかよく分かっていない人がいるみたいなので補足しておく

>>628
628(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) [sage] 2025/02/10(月) 17:14:00.11 ID:cWC6BpGk0(2/3) AAS
>>627
ポインタにはアドレスが入ってるだけという話題が出てたからそんなことはないという注意喚起。
未定義の動作を引き起こすプログラムを提示しても結果が分からないし毎回違う可能性もある点でこれだと何も示せてない
きつい言い方かもしれないが注意喚起になっていない
>>634
634(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) [sage] 2025/02/11(火) 11:05:12.56 ID:0+q77CUl0(1/2) AAS
>>632
強調しておくけど未定義は何が起こってもよい。
この場合は一応は式が式として評価されたかのように動作してるので比較的マシな部類で、未定義を踏んでいる箇所とは遠く離れた箇所で意味不明の動作が起こることもある。(起こってもよい。)
低レイヤから入った人は未定義をナメてることが結構あるとは思う。
どのような機械語にコンパイルされるか想像できる (と本人は思っている) 故の弊害だなぁ。
の2行目を見るとコードの動き方に対しての認識として不定の動作と未定義の動作を混同して勘違いしてるかも知れないね
657: 627 (ワッチョイ 6a4d-WFrT) [] 2025/02/12(水) 11:21:58.36 ID:OojhOsKe0(2/3) AAS
>>631
631(1): 警備員[Lv.5][新芽] (ワッチョイ 8713-tGgj) [sage] 2025/02/11(火) 00:58:16.10 ID:nkHTE6y60(1/2) AAS
これはどういうことなんだ?
foo、barの順にスタックに積まれる
bazにはfooの次の(intの境界の)番地(barと同じ)が入り、quzにはbarの番地が入る
bazとquzには同じ番地(値)が入っている
までは分かる
bazもquzもint型を指している
が、bazとquzの内容を比較するとことなる
なんじゃこりゃ〜
酔ってなくても分からなそう
未定義の動作なので2行目から7行目のような事が起きるかどうかは分からない
仮に未定義の動作がなかったとしても行目を自明のように仮定することは出来ない
アーキテクチャが色々ある中そういう処理系もあればそうでない処理系もあるしCでは何も規定してない
スタックの仕組みがないものもあればポインタをそもそも数値や番地で扱わないアーキテクチャもある
後段も同様
658
(2): 627 (ワッチョイ 6a4d-WFrT) [] 2025/02/12(水) 11:22:39.59 ID:OojhOsKe0(3/3) AAS
>>644
644(1): 警備員[Lv.3][新芽] (ワッチョイ 1ac9-tGgj) [sage] 2025/02/11(火) 16:59:49.92 ID:MJELNENN0(1) AAS
>>627
最適化されると出力されるコードを推測することは無理だ、ということね
コンパイラの動作に対して必要条件が何も設定されない状態になるという話で最適化は全く関係ない

ちなみに今回の話はK&Rの頃からあるルールなので>>648
648(4): デフォルトの名無しさん (ワッチョイ 7f1b-hc6T) [sage] 2025/02/11(火) 21:27:22.00 ID:JzAdQ4dR0(1) AAS
とりあえず読むべし
旧石器時代のポインタをご利用の皆様へ 〜provenance入門〜
外部リンク:qiita.com
とはちょっと違う
ただ内容は大体同じでポインタはオブジェクトを指してるもので、その内部形式や扱い方はユーザーが知る必要はない
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.038s