An amusing piece of code
Tim Smith
tim at ism780c.UUCP
Sat Apr 5 14:10:07 AEST 1986
Here is an amusing piece of code that someone who wants to remain
annonymous invented.
The situation is that we have something that, if written with if-then-else
would be
if ( thing == A )
A-code;
else
if ( thing == B || thing == C || thing == D ) {
switch ( thing ) {
case B: B-code; break;
case C: C-code; break;
case D: D-code; break;
}
BCD-common-code;
} else
if ( thing == E )
E-code;
A, B, C, D, and E are constant expressions, so this is not elegant.
We would like to use a switch for everything. Here is a solution:
switch ( thing ) {
case A: A-code; break;
case B: B-code; if ( 0 ) {
case C: C-code; if ( 0 ) {
case D: D-code; }}
BCD-common-code; break;
case E: E-code;
}
Noone here has been able to come up with a reasonable style for this. The
example above is not to bad, but if B-code, C-code, etc, are complicated,
then it starts to get ugly.
--
Tim Smith sdcrdcf!ism780c!tim || ima!ism780!tim || ihnp4!cithep!tim
PS: I bet you were relieved that I didn't say you invented this, right Darryl?
More information about the Comp.lang.c
mailing list