delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1998/03/26/08:51:00

Date: Thu, 26 Mar 1998 14:50:43 +0100 (MET)
Message-Id: <199803261350.OAA25048@tyr.diku.dk>
From: Morten Welinder <terra AT diku DOT dk>
To: djgpp-workers AT delorie DOT com
In-reply-to: <351A0E4B.57F8@rug.ac.be> (message from Vik Heyndrickx on Thu, 26
Mar 1998 09:14:03 +0100)
Subject: Re: NULL redefined! :(
References: <199803252349 DOT SAA09833 AT delorie DOT com> <351A0E4B DOT 57F8 AT rug DOT ac DOT be>

__null was introduced by the EGCS people because...

1. "0" doesn't work well on machine for which
    sizeof (int) != sizeof (void *).
2. "0L" has similar problems.
3. "((void*)0)" doesn't work in C++ because you would have to go
   cast it all the time.

__null is supposed to be a magic r-value that...

* works as "0" when compared to any pointer or integer.
* has the size of pointers (and thus looks like "((void*)0)" when
  passed.

The only place it should make a difference is with the definition
of NULL because the pre-processor doesn't know about __null's
semantics.

Morten

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019