C++相談室 part166 (569レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
392(1): デフォルトの名無しさん (ワッチョイ 0175-Is3k) [] 2025/06/20(金) 09:01:01.71 ID:BxPKXrVj0(1/4) AAS
>>390変数が関わらない定数だけの演算なら、コンパイルの時点で計算しても結果同じだよね
だから実行時ではなくコンパイルの時点で演算した結果を使う
初歩の最適化の一つ
元の式については左辺に変数が入ってくるから多分最適化はされない
a=b/10*10みたいなのを想定してると思うけど、この場合は最終的に
a=b/10
c=a*10と分解して計算されるので、どちらにも変数が関わってしまい最適化対象外だと思う
a=b*(10/10)みたいな、計算優先度的に変数が関わらないところができれば最適化される
この手の手動最適化なんて考えなくなって久しいから間違ってたらすまぬ
395: デフォルトの名無しさん (ワッチョイ 0175-Is3k) [] 2025/06/20(金) 10:40:47.81 ID:BxPKXrVj0(2/4) AAS
昔は最適化でバグ混入させられることもあって、最適化は切れってされてたなぁ、っていうおっちゃんのつぶやき
398(1): デフォルトの名無しさん (ワッチョイ 0175-Is3k) [] 2025/06/20(金) 11:57:23.05 ID:BxPKXrVj0(3/4) AAS
>>396396(2): デフォルトの名無しさん [sage] 2025/06/20(金) 10:45:39.27 ID:4xHX9xY70(1/2) AAS
>>392
ここまでの話で「定数だけの演算なら」と何で言い出すのか理解できないけど
>>375では「整数型の変数を」と言っているわけだし
まあそれはおいておいても「コンパイルの時点で計算しても」←演算してんじゃんって俺は思うわけ
>>393
それ自体は問題なくね?
157 を 10で割って15
これに10を掛けるのでなく15*8+15+2 でも最適化の影響はないだろ?
割り算の方でそれが起きるなら問題だけど、>>378の人の話では起きないようだけど
コンパイラで演算しても結果が変わらない場合に限り、コンパイラで演算を行いその結果だけを使う
392でも書いてるが、例題の変数を10で割って10を掛ける動作は演算結果が変わってしまうので最適化は行わない
412(1): デフォルトの名無しさん (ワッチョイ 0175-Is3k) [] 2025/06/20(金) 21:12:56.63 ID:BxPKXrVj0(4/4) AAS
>>409ただしバグがなければ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.035s