From: | Hans-Peter Diettrich <DrDiettrich1@netscape.net> |
Newsgroups: | comp.compilers |
Date: | Thu, 8 Dec 2022 21:42:26 +0100 |
Organization: | Compilers Central |
References: | 22-12-001 22-12-003 22-12-004 22-12-007 22-12-010 22-12-011 |
Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="12173"; mail-complaints-to="abuse@iecc.com" |
Keywords: | C, history, comment |
Posted-Date: | 08 Dec 2022 15:45:01 EST |
In-Reply-To: | 22-12-011 |
Content-Language: | de-DE |
X-ZEDAT-Hint: | R |
On 12/8/22 2:53 AM, Keith Thompson wrote:
> Hans-Peter Diettrich <DrDiettrich1@netscape.net> writes:
>> On 12/6/22 6:56 PM, Keith Thompson wrote:
> [...]
>>> "int int" is a syntax error.
>>
>> I could not find in the (older) C++ grammar why "int int" should be a
>> *syntax* error. Aren't both "int" and "long" simple-type-specifier's
>> which can occur multiple times in a decl-specifier-seq?
>
> No, there are specific rules that specify the way they can be used.
> In the 2011 ISO C standard standard (I use the draft from
> https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf), the valid
> type specifiers are listed in section 6.7.2.
Thanks for the link :-)
> At least one type specifier shall be given in the declaration
> specifiers in each declaration, and in the specifier-qualifier
> list in each struct declaration and type name. Each list of type
> specifiers shall be one of the following multisets (delimited
> by commas, when there is more than one multiset per item);
> the type specifiers may occur in any order, possibly intermixed
> with the other declaration specifiers.
So let me repeat my questions:
- Why is "int int" a syntax error? "At least one..." allows for more
than one type-specifier in declaration-specifiers (6.7).
- What's "long int long"? My current (Arduino) C++ compiler doesn't flag
it as an error.
DoDi
[This is getting close to comp.lang.c but I'm OK with a little more
discussion of the design decisions in C's very messy declarations. -John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.