Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!decwrl!amdcad!amd!pesnta!hplabs!tektronix!uw-beaver!uw-june!entropy!dataio!bright From: bright@dataio.UUCP Newsgroups: net.lang.c Subject: Re: microsoft C considered stupid Message-ID: <1030@dataio.UUCP> Date: Mon, 23-Jun-86 13:33:07 EDT Article-I.D.: dataio.1030 Posted: Mon Jun 23 13:33:07 1986 Date-Received: Fri, 27-Jun-86 07:07:45 EDT References: <1986Jun20.01:10:46.477@utcs.uucp> Reply-To: bright@dataio.UUCP (Walter Bright Organization: Data I/O Corp., Redmond WA Lines: 24 In article <1986Jun20.01:10:46.477@utcs.uucp> flaps@utcs.uucp (Alan J Rosenthal) writes: >I have just received MS C for the IBM PC/AT running MS-DOS. >The manuals, besides being poorly and sometimes inaccurately written, >encourage all sorts of stupid things. >1. They have instituted a pre-processor conditional of the form > #if defined(MANIFEST_CONSTANT). Furthermore, the manual notes that > use of #ifdef is "discouraged" (though at least they support it). > Here in net.lang.c several C revision proposals have been rejected on > the grounds that they don't add enough to the language to merit the > inconvenience of a change. This change from #ifdef adds absolutely > nothing to the language! Ah, but it does add an important capability! It is very convenient to do: #if defined(abc) && defined(def) || defined(ghi) code... #endif I need this capability as I write code that is ported to as many as 8 different C compilers and machines. Of course, the feature already exists, because if an identifier is not defined it is replaced with 0 in #if expressions, but I think that's a worse kludge.