> Er, by "permission" I meant it doesn't make the _implementation_
> non-compliant.

No, it doesn-t make cthe compiler non-complaint, but it makes your
code non complaint.

> And implementation-defined is not the same as undefined.

I perfectly know it, but in this case it is not exactly said 
if it is implementation-defined or undefined, so I think
the second applies.

>>      - Each header declares and defines only those
>>      identifiers listed in its associated section: If the header includes
>>      another header then it will break this rule.
> 
> I think this is meant as a statement that strictly conforming programs
> may not rely on them defining anything else. Most of these identifiers

The sentence from the standard is: "Each header declares and defines
only those identifiers listed in its associated section".  I think is
really clear the meaning of the word _only_.  If it declares more
identifiers then it can break conforming codes that use the same
identifier.  This is the reason why all the new keywords of the
language are added with _ followed by upper case, because it is a
reserved namespace and it is sure that it will not break any code.
For example I have a program that is strictly conforming, but it
cannot compile in gcc because it uses the identifier typeof, that gcc
uses, even when it is in the program namespace.  Gcc is not a
conforming implementation (of course it respects this point if you use
-ansi).

You didn't mention anything about the other reference I posted here,
the book of Plauger.  I supossed ppl knew about this book and the
author, but maybe it is not true. This is the main staff of the ansi
committee:

        Chair
        Jim Brodie
        
        Vice-Chair
        Thomas Plum       Plum Hall Secretary
        P. J. Plauger     Whitesmiths, Ltd.
        
        International Representative
        P. J. Plauger     Whitesmiths, Ltd.
        Steve Hersee      Lattice, Inc.
        
        Vocabulary Representative
        Andrew Johnson    Prime Computer 
        
        Environment Subcommittee Chairs
        Ralph Ryan        Microsoft
        Ralph Phraner     Phraner Associates
        
        Language Subcommittee Chair
        Lawrence Rosler   AT&T
        
        Library Subcommittee Chair
        P. J. Plauger     Whitesmiths, Ltd.
        
        Draft Redactor
        David F. Prosser  AT&T
        Lawrence Rosler   AT&T
        
        Rationale Redactor
        Randy Hudson      Intermetrics, Inc. 

You can see that he was vice-chair of the committee and
chair of Library Subcommittee, and he wrote two books about
the standard, that basically were a translation for humans of it,
so if he wrote that standard headers cannot include another
standard headers I suppose he was rigth.

I think this conversation begins to be a bit OT, if you want we can
continue it in comp.lang.c.

Regards,


Reply via email to