掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
コンパイラの最適化の謎 (ID:148643)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
コンパイル時に最適化はいつもチェックを外しているのですが それでも下記のソースが最適化?により正常に機能しません。 ※関数の中は簡略化しています。 関数が正常に呼ばれれば iは 2なのですが 1が返ります。 最適化の有無に関係無く True と or を取る場合は左式で結果が確定なので 関数はスルーされてしまうのでしょうか? もちろん f := DelphiTest(i) or f; に変更すれば動作します。 そういうものナノでしょうか? 環境 Windows10 Delphi2007 procedure TForm1.Button1Click(Sender: TObject); function DelphiTest(var i : Integer) : Boolean; begin i := i + 1; result := true; end; var f : Boolean; i : Integer; begin i := 0; f := False; f := f or DelphiTest(i); f := f or DelphiTest(i); // end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.