Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #102897

Re: C declarations

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

Show all headers | View raw


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


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