We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I am using switch statement as follows
uint16 val;
switch (val) { case 0x0000: ... break case 0x0001: ... break case 0x0000: ... break case 0x0000: ... break case 0x0000: ... break case 0x0004: ... break case 0x0005: ... break case 0x0304: break;
default: break }
some times control jumps from one case to other case eventhough there are break statements for each case.
Thanks Pankaj
I am sorry there is correction in this piece of code I missed values, I wanted to show the sample code as the actual code is quite big.
switch (val) { case 0x0001: ... break; case 0x0010: ... break; case 0x0020: ... break; case 0x0030: ... break; case 0x0100: ... break; case 0x0004: ... break; case 0x0205: ... break; case 0x0304: break;
default: break; }
What happens when I execute this and debug it then control goes to one case and then jumps to the another case though each case has a break, syntax and all are correct, no compile time errors.
to set the opimization to 2 and see what happens. That will (in)validate one possiblity.
come back with the result
Erik
The processor is not processing source code.
And there is not a one-to-one relationship between source code statements and processor instructions.
Don't assume that the processor execution will follow linearly from your source code. Most definitely don't support this if compiling with optimization turned on.