C++相談室 part166 (569レス)
前次1-
抽出解除 レス栞

375
(5): (ワッチョイ 1202-2JrO) 06/19(木)20:50 ID:Cdln7j8I0(1) AAS
整数型の変数を10で割ってから10掛けたら元の数字の一の位を0にした数が得られるはずだけど
この計算が最適化とかで除かれない保証ってあるの
377: はちみつ餃子◆8X2XSCHEME (ワッチョイ f532-iKku) 06/19(木)20:57 ID:nNn4PbNI0(5/6) AAS
>>375
C++ の言語仕様は抽象機械の動作として記述されている。
動作を説明するための架空の機械の動作なので、文字通りの機械語が生成されるとは限らない。
結果的な動作が仕様に反しなければどのような機械語を生成しても言語仕様に準拠していると言って良い。
しかし、逆に言えば最適化で変形したとしても結果は変わらないようになることが保証される。
378
(1): (オイコラミネオ MMdd-Rgxs) 06/19(木)21:05 ID:oyTCj2/DM(2/5) AAS
>>375
最適化では結果は変わらない。
つまり、ちゃんと10で割って、ちゃんと10を掛ける。
10を掛ける方は、マシン語の乗算命令は使われず、
もっと速い命令に置き換えられることが有るが、結果は同じ。
381
(1): (スッップ Sdb2-T1jw) 06/19(木)22:14 ID:JQ4jFr2Sd(1) AAS
>>375
それだと取り除けるケースがあるので保証はされない
383: (ワッチョイ 9202-oXsi) 06/19(木)23:15 ID:IWPeLhU+0(1) AAS
>>375
あるわけないでしょ
そういう仕様なんだから
396
(2): 06/20(金)10:45 ID:4xHX9xY70(1/2) AAS
>>392
ここまでの話で「定数だけの演算なら」と何で言い出すのか理解できないけど
>>375では「整数型の変数を」と言っているわけだし
まあそれはおいておいても「コンパイルの時点で計算しても」←演算してんじゃんって俺は思うわけ

>>393
それ自体は問題なくね?
157 を 10で割って15
これに10を掛けるのでなく15*8+15+2 でも最適化の影響はないだろ?
割り算の方でそれが起きるなら問題だけど、>>378の人の話では起きないようだけど
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.021s