MPLAB IDE v8.92 でプログラミング中に非常に興味深い問題が発生しました。これはコードの抜粋ですが、問題が発生している場所は次のとおりです。
struct data
{
INT32 value;
};
struct data array[8] = {{0},{0},{0},{0},{0},{0},{0},{0}};
INT32 IOC[8];
INT32 IOD[8];
for ( byte i = 0; i<8; i++)
{
#ifdef DAC
IOC[i] = 0;
IOD[i] = 24;
if(array[i].value == 0) array[i].value == 1;
#endif
}
コードはエラーなしでビルドされ、ICD 3 デバッグを使用してコードのこの部分をステップ実行すると、IOC と IOD は正しく割り当てられますが、if ステートメントはスキップされます。つまり、デバッガーは停止しません。何が起こったのでしょうか?