Standardized predefined CPP symbols, down with folklore
    Andrew Klossner 
    andrew at orca.UUCP
       
    Thu Jul 12 07:06:39 AEST 1984
    
    
  
[]
	"Actually, it wouldn't matter if the implementors had had the
	sense to have cpp implcitly "#define unix unix", instead of
	"#define unix 1".  The first would still permit all "#ifdef
	unix" work, while the actual implementation caused me grief one
	day when I tried to create a function called unix()"
Nope.  "#define unix unix" followed by a use of "unix" will put the
preprocessor into a loop, scanning "unix" over and over, until the
recursion depth is hit and it punts with a fatal error message.
Here's what it does under 4.2BSD:
	% cat >unix.c
	#define unix unix
	unix() {}
	% cc unix.c
	unix.c: 1: unix redefined
	unix.c: 2: unix: macro recursion
	% 
  -- Andrew Klossner   (decvax!tektronix!orca!andrew)      [UUCP]
                       (orca!andrew.tektronix at rand-relay)  [ARPA]
    
    
More information about the Comp.lang.c
mailing list