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


Groups > comp.lang.c > #104116

Re: Standard Headers

From Ben Bacarisse <ben.usenet@bsb.me.uk>
Newsgroups comp.lang.c
Subject Re: Standard Headers
Date 2017-02-18 02:48 +0000
Organization A noiseless patient Spider
Message-ID <87poigcixw.fsf@bsb.me.uk> (permalink)
References <o878ij$840$1@dont-email.me> <87d1egee57.fsf@bsb.me.uk> <o87tds$amh$1@dont-email.me>

Show all headers | View raw


Nick Bowler <nbowler@draconx.ca> writes:

> On Fri, 17 Feb 2017 20:49:40 +0000, Ben Bacarisse wrote:
>> That's fine provided that knowledge is switched on at the right time.  A
>> call to (for example) printf must be diagnosed as an error if there is
>> no declaration in scope but after the magic line #include <stdio.h> the
>> compiler must behave as if it contains a declaration of that function.
>>
>> If you go down the route of having the headers simply trigger the right
>> internal behaviour you must Take care with the actual scope.  This:
>> 
>> int main(void)
>> {
>>      {
>> #include <stdio.h>
>>      }
>>      printf("");
>> }
>> 
>> requires a diagnostic.
>
> I think a diagnostic is not required.  This code violates a "shall"
> requirement outside of a constraint:
>
>   C11ยง7.1.2p4:
>
>     "... a [standard] header shall be included outside of any external
>      declaration or definition ..."

I didn't know that.  Thanks.  It's been so since at least C89 so I
should have known, but it's never come up until now.

> and therefore the results of such an inclusion are undefined.  So I
> think the implementation could reasonably make a printf declaration
> visible globally when it sees #include <stdio.h>, without caring
> (much) about scoping rules.

Indeed.  All bets are off.

-- 
Ben.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Standard Headers BartC <bc@freeuk.com> - 2017-02-17 16:34 +0000
  Re: Standard Headers supercat@casperkitty.com - 2017-02-17 08:50 -0800
    Re: Standard Headers luser droog <luser.droog@gmail.com> - 2017-02-17 09:08 -0800
      Re: Standard Headers Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-17 20:31 +0000
  Re: Standard Headers GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-02-17 18:09 +0100
  Re: Standard Headers "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2017-02-17 09:18 -0800
  Re: Standard Headers Keith Thompson <kst-u@mib.org> - 2017-02-17 09:26 -0800
    Re: Standard Headers BartC <bc@freeuk.com> - 2017-02-17 17:53 +0000
      Re: Standard Headers me <crisdunbar@gmail.com> - 2017-02-17 10:23 -0800
        Re: Standard Headers BartC <bc@freeuk.com> - 2017-02-17 18:45 +0000
          Re: Standard Headers GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-02-17 19:54 +0100
            Re: Standard Headers Keith Thompson <kst-u@mib.org> - 2017-02-17 12:27 -0800
  Re: Standard Headers jameskuyper@verizon.net - 2017-02-17 11:38 -0800
  Re: Standard Headers Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-17 20:49 +0000
    Re: Standard Headers supercat@casperkitty.com - 2017-02-17 13:29 -0800
    Re: Standard Headers BartC <bc@freeuk.com> - 2017-02-17 22:13 +0000
    Re: Standard Headers Nick Bowler <nbowler@draconx.ca> - 2017-02-17 22:28 +0000
      Re: Standard Headers Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-18 02:48 +0000
        Re: Standard Headers supercat@casperkitty.com - 2017-02-18 10:26 -0800
          Re: Standard Headers bart4858@gmail.com - 2017-02-18 11:08 -0800
            Re: Standard Headers supercat@casperkitty.com - 2017-02-18 11:45 -0800
  Re: Standard Headers Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-19 13:45 -0800
    Re: Standard Headers BartC <bc@freeuk.com> - 2017-02-19 22:39 +0000
      Re: Standard Headers supercat@casperkitty.com - 2017-02-19 16:00 -0800

csiph-web