I have a segment of codes as follows. 'app' is a structure variable.
The code can successfully pass the compiling process and run but contains some inexecutable important commands, which can't be recognized by compiler, e.g.app.bT = TRUE. Besides, there are some disordered jump inside the switch, e.g. jumping from case 1 to case 5 without executing "break" in case 1.
app.bT=FALSE;
do {
switch ( ix )
{
case 0: if ( app.f0< app.fB1 ) app.bT = TRUE; break;
case 1: if (( app.fB1 <= app.f0 )&&( app.f0<= app.fB2 ) ) {if ( app.fC1 > ( ( app.fM1 * app.f0 ) +( app.f_Allowed - app.fM1* app.fB2 ) ) ) app.bT= TRUE; } break;
case 2: if ( app.f0>app.f_Allowed) app.bT = TRUE;
break;
case 3: if (( app.f0 <= app.fB4 ) ) { if ( app.fT > ( ( app.fM2 * app.f0 ) +( app.f_Allowed -app.fM2*app.fB3 ) ) ) app.bT = TRUE; } break;
case 4: if ( app.f0> app.fB4 ) app.bT = TRUE; break; default: break;
}
ix++;
while ( ix < 5 && app.bT == FALSE );
I think it's the internal error of C51 since there are few other explanation for this strange problem but I still don't want to believe that's true. Would you please give me an answer? Thank you for your help.