Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #102897
| From | Robert Wessel <robertwessel2@yahoo.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: C declarations |
| Message-ID | <eg239cd8il53hh3i99bdjs1a2mv78d70pl@4ax.com> (permalink) |
| References | (1 earlier) <o6r0gj$4di$1@dont-email.me> <o6r22b$ab3$1@dont-email.me> <efd881FhgsiU1@mid.individual.net> <3fd6c360-cd60-4d22-b7c6-4ac75ab206c3@googlegroups.com> <efdemaFhgsiU2@mid.individual.net> |
| Organization | Forte - www.forteinc.com |
| Date | 2017-02-01 01:18 -0600 |
On Wed, 1 Feb 2017 19:48:42 +1300, Ian Collins <ian-news@hotmail.com>
wrote:
>On 02/ 1/17 07:42 PM, luser droog wrote:
>> On Tuesday, January 31, 2017 at 10:58:49 PM UTC-6, Ian Collins wrote:
>>> On 02/ 1/17 11:13 AM, BartC wrote:
>>>> On 31/01/2017 21:46, Andrey Tarasevich wrote:
>>>>> On 1/30/2017 5:00 AM, BartC wrote:
>>>>>> I've been studying C's syntax in a bit more detail and trying to match
>>>>>> up what a compiler allows, with the grammar. Here's one example:
>>>>>>
>>>>>> #include <stdio.h>
>>>>>>
>>>>>> a=10, b=20, c=30;
>>>>>>
>>>>>> int main(void){}
>>>>>>
>>>>>> This compiles fine.
>>>>>
>>>>> I can't say for sure if this was OK in K&R, but in the standard C (even
>>>>> in the first C89/90) this is already illegal. The grammar for
>>>>> _declaration_ requires at least a storage class specifier, a
>>>>> type-specifier or a type qualifier to be present. Which means that if
>>>>> you wanted to take advantage of the "implicit int" rule in C89/90, you'd
>>>>> have to do at least
>>>>>
>>>>> static a = 10, b = 20, c = 30;
>>>>>
>>>>> or, say,
>>>>>
>>>>> const a = 10, b = 20, c = 30;
>>>>>
>>>>> What you have in your original code is not compliant with C89/90
>>>>> requirements.
>>>>
>>>> Out of six compilers, three gave a warning about an implicit int, the
>>>> other three said nothing at all.
>>>
>>> Care to name and shame?
>>>
>>
>> I think we can all see the whodunit that the compilers
>> were almost certainly invoked in a (default) mode
>> which does not purport to be strictly standards-conforming.
>
>Even unadorned gcc complains...
FWIW, MS VS2010 complains at higher warning levels (but not by
default). Accepting that form appears to date back to at least MSC
5.1 (circa 1988), so I'd guess a default extension* that's been left
enabled for compatibility.
*Or at least now it's an extension, harder to say what to call it in
1988.
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
C declarations BartC <bc@freeuk.com> - 2017-01-30 13:00 +0000
Re: C declarations David Brown <david.brown@hesbynett.no> - 2017-01-30 14:25 +0100
Re: C declarations Keith Thompson <kst-u@mib.org> - 2017-01-30 11:42 -0800
Re: C declarations Andrey Tarasevich <andreytarasevich@hotmail.com> - 2017-01-31 13:46 -0800
Re: C declarations BartC <bc@freeuk.com> - 2017-01-31 22:13 +0000
Re: C declarations Andrey Tarasevich <andreytarasevich@hotmail.com> - 2017-01-31 16:43 -0800
Re: C declarations Andrey Tarasevich <andreytarasevich@hotmail.com> - 2017-01-31 17:06 -0800
Re: C declarations Ian Collins <ian-news@hotmail.com> - 2017-02-01 17:58 +1300
Re: C declarations luser droog <luser.droog@gmail.com> - 2017-01-31 22:42 -0800
Re: C declarations Ian Collins <ian-news@hotmail.com> - 2017-02-01 19:48 +1300
Re: C declarations Robert Wessel <robertwessel2@yahoo.com> - 2017-02-01 01:18 -0600
Re: C declarations David Brown <david.brown@hesbynett.no> - 2017-02-01 10:10 +0100
Re: C declarations BartC <bc@freeuk.com> - 2017-02-01 11:39 +0000
Re: C declarations David Brown <david.brown@hesbynett.no> - 2017-02-01 13:55 +0100
Re: C declarations BartC <bc@freeuk.com> - 2017-02-01 13:22 +0000
Re: C declarations David Brown <david.brown@hesbynett.no> - 2017-02-01 16:30 +0100
Re: C declarations Keith Thompson <kst-u@mib.org> - 2017-02-01 08:15 -0800
Re: C declarations supercat@casperkitty.com - 2017-02-01 08:44 -0800
Re: C declarations David Brown <david.brown@hesbynett.no> - 2017-02-01 20:56 +0100
Re: C declarations supercat@casperkitty.com - 2017-02-01 08:29 -0800
Re: C declarations BartC <bc@freeuk.com> - 2017-02-01 17:24 +0000
Re: C declarations fir <profesor.fir@gmail.com> - 2017-02-01 09:55 -0800
Re: C declarations BartC <bc@freeuk.com> - 2017-02-01 18:44 +0000
Re: C declarations Keith Thompson <kst-u@mib.org> - 2017-02-01 11:03 -0800
Re: C declarations fir <profesor.fir@gmail.com> - 2017-02-01 12:26 -0800
Re: C declarations fir <profesor.fir@gmail.com> - 2017-02-01 13:03 -0800
Re: C declarations fir <profesor.fir@gmail.com> - 2017-02-01 13:12 -0800
Re: C declarations fir <profesor.fir@gmail.com> - 2017-02-03 16:07 -0800
Re: C declarations Keith Thompson <kst-u@mib.org> - 2017-02-01 10:44 -0800
Re: C declarations jameskuyper@verizon.net - 2017-02-01 11:08 -0800
Re: C declarations Keith Thompson <kst-u@mib.org> - 2017-02-01 10:40 -0800
Re: C declarations BartC <bc@freeuk.com> - 2017-02-01 17:04 +0000
Re: C declarations Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-01 19:58 +0000
Re: C declarations BartC <bc@freeuk.com> - 2017-02-01 21:23 +0000
Re: C declarations Keith Thompson <kst-u@mib.org> - 2017-02-01 08:08 -0800
Re: C declarations Andrey Tarasevich <andreytarasevich@hotmail.com> - 2017-02-01 12:45 -0800
Re: C declarations Andrey Tarasevich <andreytarasevich@hotmail.com> - 2017-03-06 11:19 -0800
Re: C declarations Keith Thompson <kst-u@mib.org> - 2017-03-06 11:27 -0800
csiph-web