Deutsch   English   Français   Italiano  
<868qzlojmi.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: C23 thoughts and opinions
Date: Mon, 03 Jun 2024 13:29:25 -0700
Organization: A noiseless patient Spider
Lines: 43
Message-ID: <868qzlojmi.fsf@linuxsc.com>
References: <v2l828$18v7f$1@dont-email.me> <v2o57g$1t5p4$1@raubtier-asyl.eternal-september.org> <v3dkgh$2e0me$1@dont-email.me> <v3gou9$36n61$3@dont-email.me> <v3hrq7$1o743$1@news.xmission.com> <v3i7u3$3bp0v$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Date: Mon, 03 Jun 2024 22:29:26 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="df68cad4d9500866e5e56f3de5ab6749";
	logging-data="43441"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+TefgFCDPYTJb937F0GEK7IXJH9ozAd4g="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:eIPpDv5r5aI7Fib8KHkk+q5JZZg=
	sha1:DD2+5S88F0lB7++oYpOVEZakl2Q=
Bytes: 2409

Lew Pitcher <lew.pitcher@digitalfreehold.ca> writes:

> On Sun, 02 Jun 2024 13:24:23 +0000, Kenny McCormack wrote:
>
>> In article <v3gou9$36n61$3@dont-email.me>,
>> Lawrence D'Oliveiro  <ldo@nz.invalid> wrote:
>>
>>> On Fri, 31 May 2024 17:55:13 -0500, Lynn McGuire wrote:
>>>
>>>>     while (1)
>>>
>>> Why not
>>>
>>>    while (true)
>>>
>>> or even
>>>
>>>    for (;;)
>>>
>>> ?
>
> I've always considered
>   for (;;)
> preferable over
>   while (1)
> as the for (;;) expression does not require the compiler to expand
> and evaluate a condition expression.
>
> For the for (;;), the compiler sees the token stream <LPAREN>
> <SEMICOLON> <SEMICOLON> <RPAREN>, and emits a closed loop, but
> with while (1), the compiler sees <LPAREN> <CONSTANT> <RPAREN>,

But the 'for (;;)' tokens need to be matched to a much more
complicated syntax, with three optional expression (one of
which might be a declaration) before assigning semantics.
There is actually a lot more to do when 'for (;;)' is used.

> and has to evaluate (either at compile time or at execution
> time) the value of the <CONSTANT> to determine whether or or
> not to emit the closed loop logic.

Both gcc and clang turn 'while (1)' into simple loops even
under -O0.  So it can't be that hard.