This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Inexecutable statements inside switch case

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.

Parents
  • I am sorry about that. I shortened the statements before I posted them out. There are totally 8 cases, ranging from case 0 to case 8. Inside the case, there are just some "if" statements just as I posted.

    I have tried the optimazation setting but it doesn't work at all. Also I have transplanted the entire "do switch" statements out to a single C file and compile it, but the same problem occured. So I am totally confused.

    Thank you for your help.

Reply
  • I am sorry about that. I shortened the statements before I posted them out. There are totally 8 cases, ranging from case 0 to case 8. Inside the case, there are just some "if" statements just as I posted.

    I have tried the optimazation setting but it doesn't work at all. Also I have transplanted the entire "do switch" statements out to a single C file and compile it, but the same problem occured. So I am totally confused.

    Thank you for your help.

Children