Path: csiph.com!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Tim Rentsch
Newsgroups: comp.lang.c
Subject: Re: So You Think You Can Const?
Date: Sun, 12 Jan 2025 22:55:21 -0800
Organization: A noiseless patient Spider
Lines: 92
Message-ID: <86bjwb6w4m.fsf@linuxsc.com>
References: <20250107130809.661@kylheku.com> <87a5c15ob0.fsf@bsb.me.uk> <87ldvk4wu7.fsf@bsb.me.uk> <875xmn4lmy.fsf@bsb.me.uk> <8634hr8muh.fsf@linuxsc.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Date: Mon, 13 Jan 2025 07:55:21 +0100 (CET)
Injection-Info: dont-email.me; posting-host="9eea8443f476a77794ac96904ee9ae64"; logging-data="1778439"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+WFliucwh5dyYjF8cGutHypS7G7jOn8kM="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:EvND7Kx7FYgSuEN3dVkNJEMZfTo= sha1:t4L/YzrBzlBBou1pCr4Bn197NpA=
Xref: csiph.com comp.lang.c:390003
Julio Di Egidio writes:
> On 10/01/2025 02:43, Tim Rentsch wrote:
>
>> Julio Di Egidio writes:
>>
>>> On 10/01/2025 00:37, Julio Di Egidio wrote:
>>>
>>>> On 10/01/2025 00:23, Ben Bacarisse wrote:
>>>>
>>>>> Julio Di Egidio writes:
>>>>>
>>>>>> On 09/01/2025 02:09, Ben Bacarisse wrote:
>>>>>>
>>>>>>> Julio Di Egidio writes:
>>>>>>>
>>>>>>>> static AvlTree_t const *AvlTree_node(
>>>>>>>> void const *pk, AvlTree_t const *pL, AvlTree_t const *pR
>>>>>>>> ) {
>>>>>>>> AvlTree_t *pT;
>>>>>>>>
>>>>>>>> pT = malloc(sizeof(AvlTree_t));
>>>>>>>>
>>>>>>>> if (!pT) {
>>>>>>>> return NULL;
>>>>>>>> }
>>>>>>>>
>>>>>>>> pT->pk = pk;
>>>>>>>> pT->pL = pL;
>>>>>>>> pT->pR = pR;
>>>>>>>>
>>>>>>>> return pT;
>>>>>>>> }
>>>>>>>
>>>>>>> Just on a side issue, I prefer to make tests like this positive
>>>>>>> so I'd write:
>>>>>>> static AvlTree_t const *AvlTree_node(
>>>>>>> void const *pk, AvlTree_t const *pL, AvlTree_t const *pR
>>>>>>> ) {
>>>>>>> AvlTree_t *pT = malloc(*pT);
>>>>>>> if (pT) {
>>>>>>> pT->pk = pk;
>>>>>>> pT->pL = pL;
>>>>>>> pT->pR = pR;
>>>>>>> }
>>>>>>> return pT;
>>>>>>> }
>>>>>>> I'm not going to "make a case" for this (though I will if you
>>>>>>> want!) -- I just think it helps to see lots of different styles.
>>>>>>
>>>>>> That is *more* error prone,
>>>>>
>>>>> I would be happy for you to expand on why you say that.
>>>>>
>>>>>> all the more so if it's not a 5 liner...
>>>>
>>>> There is no such thing as expanding 40 years of professional
>>>> experience in software engineering and programming and doing it
>>>> properly since day one: just think about that code and what I said
>>>> for what it's worth, in particular I haven't mentioned 5 liners by
>>>> chance, things are quite more complicated not in vitro.
>>>>
>>>> And please do not hold a grudge about that: it's not me who was
>>>> trying to say how to write code... ;)
>>>
>>> BTW, I hadn't mention it, but have you noticed the second one is
>>> misindented? Between me and you, I can tell how long a piece of
>>> code will take to break when in production by just looking at
>>> it... A lot of fun. :)
>>
>> The indentation was correct in Ben's original posting.
>>
>> The misindentation first appeared in your followup to that
>> posting, where the quoted portion had been changed to remove a
>> blank line and over-indent the if().
>
> But indeed the point is what happens in the long run: if you look
> above mine is still better indented... :) But of course it is not
> indentation per se the problem: for example check the return value as
> soon as the function returns a possibly null pointer or an error value
> is certainly more widely applicable, and quite less error prone,
> especially if it's not a 5 liner...
I don't necessarily share your stylistic judgments. But in any
case it was not my intention to participate in a style debate
but only to correct a misleading impression from a statement in
your posting.
> Anyway, I also truly believe
> there is no point in belabouring the point: [...]
Then you should stop belabouring it. No one else is.