Newsgroups: comp.std.c
Path: utzoo!henry
From: henry@utzoo.uucp (Henry Spencer)
Subject: Re: __STDC__ and non-strictly conforming ANSI C compilers
Message-ID: <1988Dec15.183822.2559@utzoo.uucp>
Organization: U of Toronto Zoology
References: <3236@pegasus.ATT.COM> <9167@smoke.BRL.MIL>
Date: Thu, 15 Dec 88 18:38:22 GMT

In article <9167@smoke.BRL.MIL> gwyn@brl.arpa (Doug Gwyn (VLD/VMB) <gwyn>) writes:
>Please don't define __STDC__ at all for non standard-
>conforming implementations...
>I assume full ANSI C conformance when [#if __STDC__] succeeds.
>I don't think I should have to write
>	#if __STDC__ == 1
>which would force me to perform massive edits when the next
>C standard bumps the value of __STDC__ to 2.

Uh, Doug, why would you have to write the "== 1"?  "#if __STDC__" will
fail if __STDC__ is defined as zero.  "#ifdef __STDC__" is a different
story, mind you, but as I have pointed out in another posting, the
difference between the two could be useful.

The October draft says "__STDC__   The decimal constant 1, intended to
indicate a conforming implementation.".  It does not seem to me that
defining __STDC__ as 0 for an ANSI-like but non-conforming implementation
is *clearly* a violation of this.  Furthermore, it would appear to me
that only "#if __STDC__" is guaranteed to tell you whether it's a
conforming implementation, and "#ifdef __STDC__" should not be relied on,
given the existing wording.
-- 
"God willing, we will return." |     Henry Spencer at U of Toronto Zoology
-Eugene Cernan, the Moon, 1972 | uunet!attcan!utzoo!henry henry@zoo.toronto.edu
