Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!uunet!taumet!steve From: steve@taumet.com (Stephen Clamage) Newsgroups: comp.std.c Subject: Re: Want the word on __STDC__ Message-ID: <622@taumet.com> Date: 8 Mar 91 16:23:31 GMT References: <4755@lib.tmc.edu> <15260@smoke.brl.mil> <4203@lupine.NCD.COM> <15381@smoke.brl.mil> <668288453.3046@mindcraft.com> <2986@cirrusl.UUCP> <1991Mar7.194733.18150@watmath.waterloo.edu> Organization: Taumetric Corporation, San Diego Lines: 21 rbutterw@watmath.waterloo.edu (Ray Butterworth) writes: >In article <2986@cirrusl.UUCP> dhesi%cirrusl@oliveb.ATC.olivetti.com (Rahul Dhesi) writes: >>First, it is quite possible that a future ANSI C standard will bump up >>the value of __STDC__ to 2, thus breaking code that assumes that >>(__STDC__ != 1) implies (not standard C). >The failure to fully define __STDC__ was obviously a mistake, >and some vendors have thoroughly abused it. Wait a minute! My copy of X3.159-1989 says __STDC__ is defined as "the decimal constant 1". That seems about as clear and fully-defined as it could be. A processor which defines it to be some other value is not in compliance with the Standard. The purpose of a standard is act as a contract between the compiler writer and the compiler user; if the user writes a conforming program, the compiler will behave in a predictable way. A processor might intend not to be in compliance with the standard, in which case all bets are off. -- Steve Clamage, TauMetric Corp, steve@taumet.com