What's implementation defined?

Doug Gwyn gwyn at smoke.BRL.MIL
Mon Dec 5 04:20:45 AEST 1988


In article <1988Dec3.224807.29121 at utzoo.uucp> henry at utzoo.uucp (Henry Spencer) writes:
>Also, returning for a moment to refusal to compile not being an option,
>the ice is thin here in places.  For example, one can write something
>like "#include x y z" where x, y, and z are macros, and the manner in
>which the resulting preprocessor tokens between (e.g.) a `<' and a `>' are
>combined into a single header name is implementation-defined.  That means
>the combination has to happen, somehow.  However, there is no guarantee
>that the combination function will yield useful results.

I don't see that this example is at all on thin ice.  Using the
implementation definition, a definite header name must be produced,
or else it is illegal syntax.  The syntax for #include is spelled out.
Also what happens once has a header name is spelled out.  How does
this differ from
	#include "foo"
?  If no file matching the name exists, it is an incorrect program.



More information about the Comp.std.c mailing list