Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #104116
| 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> |
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
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