Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Mar 2004 17:14:18 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Stefan Farfeleder <stefan@fafoe.narf.at>
Cc:        current@freebsd.org
Subject:   Re: NULL vs 0 vs 0L bikeshed time
Message-ID:  <20040302164649.K8656@gamplex.bde.org>
In-Reply-To: <20040301224712.GB959@wombat.fafoe.narf.at>
References:  <20040301213454.GA959@wombat.fafoe.narf.at> <200403012158.i21LwS0w084961@grimreaper.grondar.org> <20040301224712.GB959@wombat.fafoe.narf.at>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 1 Mar 2004, Stefan Farfeleder wrote:

> On Mon, Mar 01, 2004 at 09:58:28PM +0000, Mark Murray wrote:
> > Stefan Farfeleder writes:
> > > On Sun, Feb 29, 2004 at 03:46:35PM +0000, Mark Murray wrote:
> > >
> > > > -#define        NULL    0L
> > > > +#define        NULL    (0L)
> > >
> > > What's the point of parenthesizing 0L?
> >
> > Its two lexical elements. I got into the habit of doing that when a
> > macro replacement bit me some years ago. It is a very unimportant part
> > of the patch. :-)
>
> While I agree that it's quite unimportant, I have to contradict you.
> `OL' is a pp-number which is converted to an integer-constant in
> translation phase 7 according to the C standard.  It always is a single
> token.

Understanding pp-numbers and transaltion phases is unecessary for this.
Quoting small parts of section 6.4:

    token:
	...
	constant
	...
    constant:
	integer-constant
	...
    integer-constant:
	decimal-constant integer-suffix-opt
	...

So the suffix is part of the token for integer constants.

pp-numbers and translation phases, whatever they are, must be consistent
with this.  For tokens, I think this just means that every C token is a
pp-token.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040302164649.K8656>