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

390
(2): デフォルトの名無しさん (ワッチョイ b603-dswa) [sage] 2025/06/20(金) 01:58:37.52 ID:t+D0H6HX0(1) AAS
>>388
388(1): デフォルトの名無しさん (ワッチョイ 1279-T1jw) [] 2025/06/20(金) 01:42:50.79 ID:iLwGFTtd0(1/2) AAS
>>382
そら結果は同じよ
結果が違っちゃまずいだろうよw
演算をやらない可能性があるってこと
どういうこと?
演算しないと結果は出ないのに、演算せずにどうやって結果だすの?
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)みたいな、計算優先度的に変数が関わらないところができれば最適化される

この手の手動最適化なんて考えなくなって久しいから間違ってたらすまぬ
406
(1): デフォルトの名無しさん [sage] 2025/06/20(金) 18:21:03.44 ID:4xHX9xY70(2/2) AAS
>>398
398(1): デフォルトの名無しさん (ワッチョイ 0175-Is3k) [] 2025/06/20(金) 11:57:23.05 ID:BxPKXrVj0(3/4) AAS
>>396
コンパイラで演算しても結果が変わらない場合に限り、コンパイラで演算を行いその結果だけを使う
392でも書いてるが、例題の変数を10で割って10を掛ける動作は演算結果が変わってしまうので最適化は行わない
そんなことは知ってるのさ
「実行ごとに演算結果が変わる(可能性がある)」から最適化されない、と言うのは良いんだけど
最初からその前提の話をしていたはずなのに「演算をやらない可能性がある」と言い出しただろ?

375 整数型の変数を〜(略)〜この計算が最適化とかで除かれない保証ってあるの
381 それだと取り除けるケースがあるので保証はされない
382 いや、そんなことない。最適化では結果は変わらない事が保証される。
388 (略)〜演算をやらない可能性があるってこと

この流れじゃ『整数型の変数(実行時に結果が変わる)の場合でも最適化によって「演算をやらない可能性がある」』ってニュアンスになっているって気づかんの?
それに対してのどういう状況だ?という>>390だよ
まあ言いたいことは分かったから別にいいけどさ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.175s*