Deutsch   English   Français   Italiano  
<861pu1ccsg.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!eternal-september.org!.POSTED!not-for-mail
From: Tim Rentsch <tr.17687@z991.linuxsc.com>
Newsgroups: comp.lang.c
Subject: Re: "A diagram of C23 basic types"
Date: Wed, 09 Apr 2025 13:14:55 -0700
Organization: A noiseless patient Spider
Lines: 58
Message-ID: <861pu1ccsg.fsf@linuxsc.com>
References: <87y0wjaysg.fsf@gmail.com> <vsj1m8$1f8h2$1@dont-email.me> <vsj2l9$1j0as$1@dont-email.me> <vsjef3$1u4nk$1@dont-email.me> <vsjg6t$20pdb$1@dont-email.me> <vsjgjn$1v1n4$1@dont-email.me> <vsjk4k$24q5m$1@dont-email.me> <vsjlcp$230a5$1@dont-email.me> <vsjmdl$277bk$1@dont-email.me> <VsdHP.1828827$TBhc.1078002@fx16.iad> <vskjlo$34st8$1@dont-email.me> <20250402220614.431@kylheku.com> <85mscxlqnb.fsf@nosuchdomain.example.com> <vsl9sn$3vdjj$2@dont-email.me> <20250403121946.134@kylheku.com> <vsms75$1i8ud$1@dont-email.me> <vsnhq6$291i3$4@dont-email.me> <20250409124900.00000fa1@yahoo.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Date: Wed, 09 Apr 2025 22:14:56 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="b047b0586914e6e160c0016b929ac37f";
	logging-data="1407645"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/KgunWAf9U6MNQwheac12ri58US6lW0ho="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:1hsQxjuILR/vFaWE5mfAL0JdGhc=
	sha1:BYuTo0YcNnDvZasMPnRy7u5SZtI=
Bytes: 3155

Michael S <already5chosen@yahoo.com> writes:

> On Fri, 4 Apr 2025 02:57:10 -0000 (UTC)
> Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
>
>> On Thu, 3 Apr 2025 21:48:40 +0100, bart wrote:
>>
>>> Commas are overwhelmingly used to separate list elements in
>>> programming languages.
>>
>> Not just separate, but terminate.
>
> I disagree.  I am in favor of optional trailing commas rather than
> mandatory ones.
>
>> All the reasonable languages allow
>> trailing commas.
>
> Are your sure that C Standard does not allow trailing commas?
> That is, they are obviously legal in initializer lists.
> All compilers that I tried reject trailing comma in function calls.
>
> For example
>
> void bar(int);
> void foo(void) {
>   bar(1,);
> }
>
> MSVC:
> comma.c(3): error C2059:  syntax error: ')'
>
> clang:
> comma.c:3:9: error: expected expression
>     3 |   bar(1,);
>       |         ^
>
> gcc:
> comma.c:  In function 'foo':
> comma.c:3:9: error: expected expression before ')' token
>     3 |   bar(1,);
>       |         ^
> comma.c:3:3: error: too many arguments to function 'bar'
>     3 |   bar(1,);
>       |   ^~~
> comma.c:1:6: note:  declared here
>     1 | void bar(int);
>       |      ^~~
>
> But is it (rejection) really required by the Standard?  I don't know.

It is required in the sense that it is a syntax error,
and syntax errors require a diagnostic.

Trailing commas in argument lists and/or parameter lists
could be accepted as an extension, even without giving a
diagnostic as I read the C standard, but implementations
are certainly within their rights to reject them.