> 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,