まず始めに、私はVC++ 2008 Professionalを使用しており、Windows OS上でIntel core2を実行しています。また、このコードは、Windowsを実行しているcore2/corei7以外で実行されることはありません。whileループの条件の順序
私はこのような2つの条件を持つwhileループを持っています: 注:これははるかに単純化されたバージョンです。
while((a != b) && (array[a] < c))
最初の条件(a != b)
がfalseを生成した場合、第2の条件はさえ評価されるのでしょうか?またはループはちょうどそこで終わるでしょうか?
私はいくつかのテストを行いましたが、実際にはそうだと思われます。
ただし、ここにキャッチがあります。最初の条件がfalseを評価する場合、2番目の条件は評価されるとアクセス違反を生成します。しかし、私が見ることのできるところでは、最初の条件がfalseと評価されると、プログラムは2番目の条件を評価してループを終了し、それによって私を節約します。
問題は、私が非常に素敵できちんとしたコードを突然私に吹き飛ばすことなく、アクセス違反の問題を取り除くことができないということです。しかし、小さな "バグ"(私はそれがバグではなくコンパイラの最適化だと知っています)のために、私はそれを離れていくことができるようです。私はこれがおそらく良いプログラミングの練習ではないことも知っていますが、正直言って私の状況では、もしうまくいくならば、私はすでにゲームに先んじています。
私の質問は、この「バグ」やプログラミングの過ちが戻ってきて、いつか私に噛み付くのでしょうか?私がこのセクションから地獄をテストしたとみなした時でさえ、この1回だけこれを使用するでしょうか?
あなたにはたくさんの質問があります。あなたはちょうど私のメッセンジャーを追加する必要があります笑 –
もう一度!あなたはMMであなたにメッセージを送り、あなたに私のメッセンジャーをくれます。おい、あなたのいる場所の3AMのようなその!あなたは眠りませんか?あなたはちょうど...ここに住んでいますか? (私は唯一の他の誰もが眠っているので私はこの遅れているので、私は私の論文でいくつかの作業を行うことができますので、私を気にしない)。 – Faken
私はいくつかのサイトを定期的にチェックし、あなたの質問はいつも私の興味を引くものであり、ページの上部近くにあります。それは少し怖いです。私は実際に2時間後に早期ジムを運転しています。 –