VS 2012で奇妙な動作が発生しました(私はcppで書いています)。ウォッチを追加すると、未定義の識別子が表示されます。Visual Studio 2012、cpp
私は変数の "add watch"をクリックし、 "identifier is undefined"と言います。
は、ここでは、コードの例です:
for (int j=0;j<32;j++)
{
unsigned char curValue=desc1.at<unsigned char>(0,j);
printf("%s\n",curValue);
}
私はCURVALUEの値を表示するためのprintfを使用する必要がありました。笑。
誰もこのような動作をしましたか?
編集:もっと奇妙なことが起こります。次のコードをデバッグする場合:
int b1[8];
for (int k=0;k<7;k++)
b1[k]=0;
char q=curValue;
int t=0;
while (q!=0){
b1[t++]=q%2;
q=q/2;
}
デバッガだけB1 [K] = 0でループをスキップします。
ループ内でもcurValueは未定義です。
ありがとうございます!
問題に対する別の解決策は有効にコンパイラの最適化を残したが、最適化されたコードでは動作し、追加のデバッグ情報を生成するようにコンパイラーに伝える/ Zoとを(最適化されたデバッグを強化)できるようにすることです。これは、Visual Studio 2013 Update 3以降でのみ使用できます。 https://msdn.microsoft.com/en-us/library/dn785163.aspx –