Machine specific predefined names
    Larry Jones 
    scjones at sdrc.UUCP
       
    Tue Feb 23 09:36:27 AEST 1988
    
    
  
In article <17033 at watmath.waterloo.edu>, rbutterworth at watmath.waterloo.edu (Ray Butterworth) writes:
> But consider a different related problem:
> 
>     #include <stdlib.h>
>     #include <stdio.h>
>     int putchar(int n) { abort(n); }
>     main() { perror("xx"); }
> 
> Now if perror() needs putchar() to write the message, will it use
> my version of putchar or an internal version, say _putchar()?
[stuff omitted for brevity]
> I didn't see anything in the standard to indicate that either of
> these behaviours is right or wrong.
The draft clearly indicates in section 4.1.2 that every external identifier
declared in a standard header is reserved whether the header is included or
not and that redefining a reserved external identifier results in undefined
behaviour.  Thus, either behaviour is acceptable and your program is not
strictly portable.
----
Larry Jones                         UUCP: uunet!sdrc!scjones
SDRC                                MAIL: 2000 Eastman Dr., Milford, OH  45150
                                    AT&T: (513) 576-2070
"When all else fails, read the directions."
    
    
More information about the Comp.lang.c
mailing list