Deutsch   English   Français   Italiano  
<867c4rs0tr.fsf@linuxsc.com>

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

Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Tim Rentsch <tr.17687@z991.linuxsc.com>
Newsgroups: comp.lang.c
Subject: Re: Concatenated if and preprocessor
Date: Fri, 14 Mar 2025 15:29:36 -0700
Organization: A noiseless patient Spider
Lines: 40
Message-ID: <867c4rs0tr.fsf@linuxsc.com>
References: <vquuhg$34o8d$2@dont-email.me> <vr15ti$rtjs$1@dont-email.me> <86frjfsgtb.fsf@linuxsc.com> <vr1rni$1q6m7$1@dont-email.me> <86bju3s5vp.fsf@linuxsc.com> <87zfhniaij.fsf@nosuchdomain.example.com> <vr276s$2307i$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Date: Fri, 14 Mar 2025 23:29:37 +0100 (CET)
Injection-Info: dont-email.me; posting-host="825d11fa9501a89399e86bed31f148c6";
	logging-data="2273651"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/0DVPa64egBuWztxG/nohSATaVjIgymd4="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:X5Zbodiwi6cjMfnu/tL26rN+qN0=
	sha1:cuX8xb8hB8Y1l+U+3ZLM2lGTRVY=

Richard Harnden <richard.nospam@gmail.invalid> writes:

> On 14/03/2025 21:10, Keith Thompson wrote:
>
>> Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
>>
>>> Richard Harnden <richard.nospam@gmail.invalid> writes:
>>>
>>>> On 14/03/2025 16:44, Tim Rentsch wrote:
>>>>
>>>>>     for(  int just_once = 1;  just_once;  just_once = 0  ){
>>>>
>>>> Any reason not to say ...
>>>>
>>>> do {
>>>>      ...
>>>> } while (0);
>>>>
>>>> ... ?
>>>
>>> In fact using do/while(0) is what I first wrote.  But then
>>> I thought, oh wait, what if an overzealous compiler gives
>>> a warning because the while() expression is always false? :-/
>
> That would break a lot of macros :)
>
>> [...]
>
> Hmm, clang with -Weverything is okay with:
>   do { ... } while (0);
>
> But not with:
>   if ( 0 ) { ... }
>
> But it's okay with:
>   if ( (0) ) { ... }

These examples illustrate why I have the reaction I do.  That
plus the lack of clarity as to what the OP's actual requirements
are explains my decision to use a for() rather than do/while(0).