| Deutsch English Français Italiano |
|
<86ldzd5vwp.fsf@linuxsc.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Tim Rentsch <tr.17687@z991.linuxsc.com>
Newsgroups: comp.lang.c
Subject: Re: how to make a macro work as a single line if stmt without braces
Date: Fri, 27 Sep 2024 01:43:34 -0700
Organization: A noiseless patient Spider
Lines: 59
Message-ID: <86ldzd5vwp.fsf@linuxsc.com>
References: <PaWdnZ3R-9zI6nP7nZ2dnZfqn_GdnZ2d@brightview.co.uk> <vcm16e$1hm2u$1@dont-email.me> <vcn6m8$1n1vu$1@dont-email.me> <vcp0rq$26p7b$1@dont-email.me> <20240922080605.59@kylheku.com> <vcpeo0$28shf$1@dont-email.me> <20240922192726.000061fc@yahoo.com> <86ikul6ruw.fsf@linuxsc.com> <vcujmj$384dh$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Date: Fri, 27 Sep 2024 10:43:34 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="abc45fc1b62a735d371ae748216349f9";
logging-data="713102"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/iXNbqMxYsbeB9cx2A43xljWoPUrDYB/I="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:iRzBk1mLdWMBCz1tTEUC3MEZ34c=
sha1:PbDd+eoK36qSJ95lN4lFoI97MEM=
Bytes: 3042
Andrey Tarasevich <andreytarasevich@hotmail.com> writes:
> On 09/24/24 7:36 AM, Tim Rentsch wrote:
>
>> My long-standing habit is to write this
>>
>> if(x) bar(x);
>>
>> or this
>>
>> if(x){
>> bar(x);
>> }
>>
>> but never this
>>
>> if(x)
>> bar(x);
>>
>> The reason for this habit is that many years ago I got bitten by
>> trying to add a line in the last case. The habit subsequently
>> adopted has proven very effective at eliminating such errors.
>
> It is just weird.
>
> This is no different from insisting in using "Yoda conditions",
> claiming that "many years ago I was bitten by an accidental =
> in place of ==".
Don't be silly, of course they are different. There is nothing
artificial about surrounding controlled statements with braces.
And writing braceless single-line if()s in cases where there
is only a single controlled statement is something I was already
doing - I didn't adopt it as a reaction to something that
happened with multi-line if()s.
> In reality we all know that regardless of how many scary
> stories someone might tell about dangers of accidental
> assignment in place of comparison, it just does not happen.
> There's no such issue. People just don't make this mistake.
Your view is contradicted by objective reality.
> The same applies to
>
> if(x)
> bar(x);
>
> This is the right thing to do. It is the most readable and
> elegant way to write a simple `if`.
I think you need to learn the difference between a statement
of opinion and a statement of fact.
> And the dreaded "one day you will add a line and suffer" just
> doesn't happen. There's no such issue. People just don't make
> this mistake.
Making a false statement twice doesn't make it true.