osd7@homxa.UUCP (Orlando Sotomayor-Diaz) (02/25/85)
From: Orlando Sotomayor-Diaz (The Moderator) <cbosgd!std-c> mod.std.c Digest Sun, 24 Feb 85 Volume 3 : Issue 10 Today's Topics: Case >20 ---------------------------------------------------------------------- Date: Sun, 24 Feb 85 05:00:53 est From: cbosgd!hcr!lsuc!msb Subject: Case >20 To: hcr!cbosgd!std-c Kevin Martin suggests adding forms such as "case >20:" to C, as have been used in B for some years. Craig Partridge prefers to use defaults for these. I think Kevin is right, and here's an example of why. enum class charclass (c) char c; { switch ((unsigned) c) { case 0011 .. 0015: case 0040: return SPACE; case > 0177: return HIGHBIT; case 0041 .. 0176: return GRAPHIC; case < 0010: case 0016 .. 0037: case 0177: return CONTROL; } } Sure, there are lots of better ways to write this simple example. But the point is now that I can, as I've always wanted, write things like "case 0016 .. 0037: case 0177:", it seems sensible to allow me to combine "case < 0010:" with it. But if the cases < 0010 and > 0177 are combined as default, this requires a goto or a drop-through. I submit that inequality ranges are better. There is one side point. Notice that in the above example if I added a default it would NEVER be executed. I think this should be grounds for a compiler warning. It might be said against the proposed extension that it permits eccentric use of default, to designate a small range or even a single case value, and this would be style we don't want to encourage. All I will say to this is that anything can be abused. { allegra | decvax | duke | ihnp4 | linus | watmath | ... } !utzoo!lsuc!msb also via { hplabs | amd | ... } !pesnta!lsuc!msb Mark Brader and uw-beaver!utcsri!lsuc!msb (utcsri used to be utcsrgv) ------------------------------ End of mod.std.c Digest - Sun, 24 Feb 85 23:05:49 EST ****************************** USENET -> posting only through cbosgd!std-c. ARPA -> ... through cbosgd!std-c@BERKELEY.ARPA (NOT to INFO-C) In all cases, you may also reply to the author(s) above.