delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1998/03/25/10:26:04

Message-Id: <m0yHpcS-000S3UC@inti.gov.ar>
Comments: Authenticated sender is <salvador AT natacha DOT inti DOT gov DOT ar>
From: "Salvador Eduardo Tropea (SET)" <salvador AT inti DOT gov DOT ar>
Organization: INTI
To: Vik Heyndrickx <Vik DOT Heyndrickx AT rug DOT ac DOT be>,
Peter DOT Palotas DOT blizzar AT hem1 DOT passagen DOT se, djgpp AT delorie DOT com,
djgpp-workers AT delorie DOT com
Date: Wed, 25 Mar 1998 09:52:26 +0000
MIME-Version: 1.0
Subject: Re: NULL redefined! :(
In-reply-to: <3518F995.6AEA@rug.ac.be>

Vik Heyndrickx <Vik DOT Heyndrickx AT rug DOT ac DOT be> wrote:

> Salvador Eduardo Tropea (SET) wrote:
> > But perhaps we must investigate if the __null have some advantage and:
> > 
> > 1) Define NULL conditionally (no redefinition)
> > 2) If not defined:
> > a) Test the gcc version, if 2.8.0 define with __null
> > b) if prior define with 0.
> 
> Conditional redefinition is dangerous since this way NULL might get two
> values that do not compare equal, even when compiled with the same
> compiler version.
> An unconditional #define is best (i.e. preceded with #undef) as it only
> disadvantages programs which are at fault.
> 
> Checking whether gcc's version is 2.8.0, won't help a bit:
> for instance the libc library can have been defined using gcc-2.7.2.1
> and hence NULL would be 0. A program compiled with 2.8.0 would then
> define NULL as __null. Like DJ mentionned, a library function like fopen
> can return NULL (=0) and it must be possible that a program compares it
> with NULL (=__null).

You are talking without testing first. You are wrong, __null and 0 are 
equivalent, you CAN mix code using __null with code using 0.
In fact the whole RHIDE and my whole editor works 100% fine using the 
conditional definition of NULL, that means: MY code uses __null (compiled with 
gcc 2.8.0) and the libc uses 0 (compiled with gcc 2.7.2).

The fact is that __null is a C++ symbol and is equivalent to 0. As I explain in 
the other mail I didn't have the time to figure out what's the advantage of 
__null.

SET 
------------------------------------ 0 --------------------------------
Visit my home page: http://set-soft.home.ml.org/
or
http://www.geocities.com/SiliconValley/Vista/6552/
Salvador Eduardo Tropea (SET). (Electronics Engineer)
Alternative e-mail: set-soft AT usa DOT net set AT computer DOT org
CQ: 2951574
Address: Curapaligue 2124, Caseros, 3 de Febrero
Buenos Aires, (1678), ARGENTINA
TE: +(541) 759 0013

- Raw text -


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