Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 (Tek) 9/26/83; site tekecs.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!mhuxj!houxm!vax135!cornell!uw-beaver!tektronix!orca!tekecs!joemu
From: joemu@tekecs.UUCP (Joe Mueller)
Newsgroups: net.lang.c
Subject: Re: Standardization questions (cpp mostly)
Message-ID: <4102@tekecs.UUCP>
Date: Mon, 8-Oct-84 13:51:57 EDT
Article-I.D.: tekecs.4102
Posted: Mon Oct  8 13:51:57 1984
Date-Received: Tue, 9-Oct-84 04:14:49 EDT
References: <1209@rti-sel.UUCP>
Organization: Tektronix, Wilsonville OR
Lines: 23


> The number of predefined CPP variables on systems worldwide
> is growing weekly.  The following innocent program fails to compile
> on our Gould system:
> 	grumble()
> 	{
> 		int sel;
> 
> 		sel = selectone();
> 		...
> 	}
> The reason is that 'sel' is a predefined CPP variable!
> (It is quite difficult for a novice user to figure out what is going wrong.)
> Other people will find similar strange problems if they use
> variables named 'pyramid', 'sun', and so on.  This is ridiculous!

The ANSI committee has concidered this problem. The current draft will
state that predefined macros are implementation defined (They will
exist BUT you will be provided with a list of them and what they are
defined to be), and all conforming compilers MUST have some way of
disabling all predefined macros. This way if your application does not
want to use them, you may easily remove them without a never-ending,
always changing list of #undef foobar's.