Mark Williams C
Roger Critchlow
rec at elf115.uu.net
Mon Jun 5 16:51:31 AEST 1989
In article <13522 at haddock.ima.isc.com>, karl at haddock.ima.isc.com (Karl Heuer) writes:
> I think that, instead, I'll add the equivalent of
> #if defined(__STDC__) && __STDC__ <= 0
> #undef __STDC__
> #endif
Sorry, you aren't allowed to #undef __STDC__.
"The rule that these macros may not be redefined or undefined reduces
the complexity of the name space that the programmer and implementor
must understand;" [Rationale for dpANS C, 13-May-88, p. 67]
> until someone decides just what __STDC__==0 is supposed to mean.
It means that MWC does not claim dpANS conformance. The preprocessor
conforms to dpANS in all respects except for the value of __STDC__.
Since this makes it behave differently than previous versions of the
preprocessor, it seemed reasonable to give some indication of the
fact. The Rationale suggested that: "This macro should be of use in
the transition toward conformance with the Standard." [Ibid., p. 68]
so I made use of it.
Since the Rationale suggested that "future versions of the Standard
could define [ __STDC__ ] as 2, 3, ..." [Ibid.] I should have known
right off that everyone would poll its value with #ifdef. :-)
I missed that clue and the deed was done by the time everybody's C
magazines were cranking out examples filled with #ifdef __STDC__
conditionals.
I am sorry for the inconvenience which my perverse interpretation
has caused users of the MWC compiler.
> Does MWC, running on a non-UNIX system, predefine `unix' to be `0'?
No, MWC only runs on non-UNIX systems, it never defines unix to be
anything.
-- rec at elf115.uu.net == uunet!elf115!rec == Roger Critchlow, Sea Cliff, NY --
More information about the Comp.std.c
mailing list