私はVS 2013/Win64の/リリースでこのコードをしようとすると、私は間違った結果を得る:それは1 1
を印刷します。ビジュアル2013のWin32 /デバッグ/リリース&のWin64 /デバッグで長い長いVS 2013リリースのWin 64間違った結果
、結果は正しいです。
Visual Studioプロジェクトは、デフォルトのパラメータで作成されました。
#include <iostream>
int main(int argc, char* argv[])
{
long long inc[2] = { 0, 1 };
long long dinc[2] = { 0, 0 };
dinc[0] = inc[1] - inc[0];
dinc[1] = inc[0] - inc[1]; //expected -1 ==> display 1
for (int i = 0; i < 2; ++i)
std::cout << i << "\t" << dinc[i] << "\n";
return 0;
}
どのようにこの結果を説明できますか?
を参照してください何でもその価値のために、
Optimization Enabled
で印刷されています。 '右クリックプロジェクト - >プロパティ - > C/C++ - >最適化 - – BackDoorNoBabyoption'>「最適化」私はちょうど' Optimization'を無効にしてそのコードを実行した、と私は正しい結果が – BackDoorNoBaby
私はこれを再現することができましたローカルに。オプティマイザがどうにかして混乱しているようだ... – Angew