Deutsch   English   Français   Italiano  
<6724CFD2.4030607@grunge.pl>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder9.news.weretis.net!news.nk.ca!rocksolid2!i2pn2.org!.POSTED!not-for-mail
From: fir <fir@grunge.pl>
Newsgroups: comp.lang.c
Subject: Re: else ladders practice
Date: Fri, 01 Nov 2024 13:55:46 +0100
Organization: i2pn2 (i2pn.org)
Message-ID: <6724CFD2.4030607@grunge.pl>
References: <3deb64c5b0ee344acd9fbaea1002baf7302c1e8f@i2pn2.org> <vg0t3j$2ruor$1@dont-email.me> <78eabb4054783e30968ae5ffafd6b4ff2e5a5f17@i2pn2.org> <vg2g37$37mh3$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: i2pn2.org;
	logging-data="450619"; mail-complaints-to="usenet@i2pn2.org";
	posting-account="+ydHcGjgSeBt3Wz3WTfKefUptpAWaXduqfw5xdfsuS0";
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0 SeaMonkey/2.24
To: Bart <bc@freeuk.com>
X-Spam-Checker-Version: SpamAssassin 4.0.0
In-Reply-To: <vg2g37$37mh3$1@dont-email.me>
Bytes: 3443
Lines: 84

Bart wrote:
> On 01/11/2024 11:32, fir wrote:
>> Bart wrote:
>>> ral clear patterns here: you're testing the same variable 'n' against
>>> several mutually exclusive alternatives, which also happen to be
>>> consecutive values.
>>>
>>> C is short of ways to express this, if you want to keep those
>>> 'somethings' as inline code (otherwise arrays of function pointers or
>>> even label pointers could be use
>>
>> so in short this groupo seem to have no conclusion but is tolerant
>> foir various approaches as it seems
>>
>> imo the else latder is like most proper but i dont lkie it optically,
>> swich case i also dont like (use as far i i remember never in my code,
>> for years dont use even one)
>>
>> so i persnally would use bare ifs and maybe elses ocasionally
>> (and switch should be mended but its fully not clear how,
>>
>> as to those pointer tables im not sure but im like measurad it onece
>> and it was (not sure as to thsi as i dont remember exactly) slow maybe
>> dependant on architecture so its noth wort of use (if i remember
>> correctly)
>
> Well, personally I don't like that repetition, that's why I mentioned
> the patterns. You're writing 'n' 5 times, '==' 5 times, and you're
> writing out the numbers 1, 2, 3, 4, 5.
>
> I also don't like the lack of exclusivity.
>
> However I don't need to use C. If those 'somethings' were simple, or
> were expressions, I could use syntax like this:
>
>     (n | s1, s2, s3, s4, s5)
>

on a C ground more suitable is

{s1,s2,s3,s4,s5)[n]

//which is just array indexing, and could use also like


{
{0,0,0,0,0}
{0,1,1,1,0}
{1,1,1,1,1}
{0,1,1,1,0}
{0,0,1,0,0}} [j][i]

anmd so on
(already wrote on thsi once)


bot for general switch something more is needed probably

i could cnsider something like

n -1-> /*something / -2-> /*something / -3-> /*something /

but i dont know (this above line seem not quite good




> If they were more elaborate statements, I would use a heavier syntax,
> but still one where 'n' is only written once, and I don't need to repeat
> '=='.
>
> In the C version, you could mistakenly write 'm' instead of 'n', or '='
> instead of '=='; it's more error prone, and a compiler might not be able
> to detect it.
>
> In the C, you could probably do something like this:
>
>    #define or else if
>
>    if (x == a) {}
>    or (x == b) {}
>    or (x == c) {}
>
>