Path: csiph.com!eternal-september.org!feeder.eternal-september.org!nntp.eternal-september.org!.POSTED!not-for-mail From: Tim Rentsch Newsgroups: comp.lang.c Subject: Re: Taming The Switch-Statement Date: Wed, 14 Oct 2026 21:30:03 -0700 Organization: A noiseless patient Spider Lines: 49 Message-ID: <86o6cvr3g4.fsf@linuxsc.com> References: <119qf6l$2rmg3$1@dont-email.me> <11anobe$1dt0e$1@dont-email.me> <11ant3u$6o$1@reader2.panix.com> <11ao8af$1k8p3$1@dont-email.me> <11aol8k$adq$1@reader2.panix.com> <20261014232810.0000352a@yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Date: Thu, 15 Oct 2026 04:30:06 +0000 (UTC) Injection-Info: dont-email.me; logging-data="2185445"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/0EZdxpnBY5ir/HMszh6jhw2vDkulwOzo="; posting-host="8e248dd53a94b2a901695ff9f1057f0e" User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux) Cancel-Lock: sha1:cKBcm8fpgmQSenijhNrIvw8mfXE= sha1:+0g7mqwltZGwJ6Q644gli91hDTE= sha256:sZlgBNKjfc3m/8bnYnzvapiJ0sA01DsUbRWzy1AR8b4= sha1:piZKX3dG5U2SAVkKtgzZXSgvELg= sha256:9pQv86GN4UnVgdtBPCI6ouhBnR5aMAzaWZZbQ2BdviI= Xref: csiph.com comp.lang.c:403175 Michael S writes: > On Wed, 14 Oct 2026 19:30:28 -0000 (UTC) > cross@spitfire.i.gajendra.net (Dan Cross) wrote: > >> In article <11ao8af$1k8p3$1@dont-email.me>, bart >> wrote: >> >>> On 14/10/2026 13:38, Dan Cross wrote: >>> >>>> In article <11anobe$1dt0e$1@dont-email.me>, bart >>>> wrote: >>>> >>>>> I'd even suggest that using distinct keywords in the original C >>>>> compiler would have made it a tiny bit simpler.) >>>> >>>> Unlikely. I'm trying to chase down the citation, but it was >>>> known that getting B to fit on the PDP-7 was a challenge. From >>>> the C history paper, >>> >>> Perhaps Switch should have been left out then if it was that tight. >> >> Why? It's genuinely useful. > > C switch is in the middle between low level construct (computed goto) > and higher level select/case/whatever of many other languages. > I suppose that implementing true low level alternative would have been > simpler for compiler. And it would be even more powerful than current > construct. Of course, also more dangerous, but being dangerous is not > against C philosophy. > > int foo() > { > ... > case 42: > .... > switch(bar(x)); // can go not just to 6 and 7, but to 42 as well. > // if there is no 'default:' in the scope then default ends up here > .... > case 6: > ... > case 7: > etc... > > } I'm reminded of a quote from E.W. Dijkstra: "No, gentlemen. Three times no."