Hello, I was working on a ARM project with my Keil toolchain, and by chance I just found that the following code is working (see case 2); I tested it in the ARM simulator using different values for alfa and beta. Someone knows where can I find more detailed explanation about this behaviour of C language (K&R say nothing about "case" into "if"...)? Thanks in advance. Bruno
char alfa; char beta; char zeta; int main (void) { while (1) { switch (alfa) { case 0: zeta = 17; break; case 1: zeta = 91; break; case 2: if (beta == 1) { case 3: zeta = 38; break; case 4: zeta = 47; } break; } } }
Christoph,
The only time I've ever seen something similar is in a method called "Duff's Device" which is a truly bizarre way of creating an unrolled loop.
en.wikipedia.org/.../Duff's_device
-Jay Daniel