Date: Wed, 6 Nov 2002 18:03:25 +0100 From: Erik Trulsson <ertr1013@student.uu.se> To: John Baldwin <jhb@FreeBSD.org> Cc: Marc Olzheim <marcolz@stack.nl>, hackers@FreeBSD.org Subject: Re: RE: /usr/src/ed/bin/re.c:99 Message-ID: <20021106170325.GB19789@student.uu.se> In-Reply-To: <XFMail.20021106115417.jhb@FreeBSD.org> References: <20021106164653.GA95733@stack.nl> <XFMail.20021106115417.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Nov 06, 2002 at 11:54:17AM -0500, John Baldwin wrote: > > On 06-Nov-2002 Marc Olzheim wrote: > > .. > > if ((nd = parse_char_class(++nd)) == NULL) { > > .. > > > > Hmmm... is this legal ? > > > > http://www.eskimo.com/~scs/C-faq/q3.1.html seems to tell otherwise... > > If it were nd++, yes. However, it is ++nd, thus, the increment > happens first, then the call to parse_char_class(), then the assignment > to nd. It might be clearer to rewrite this like so however: In this regard nd++ and ++nd are completely equivalent. If parse_char_class is a function (and not a macro) I think the expression might be legal anyway since there is a sequence point after evaluating the arguments for a function call and making the call. If, OTOH, parse_char_class is a macro then the above expression is definitely not legal. (It is not legal to modify an object more than once without a sequence point in between.) > > if ((nd = parse_char_class(nd + 1)) == NULL) { > > Since that is effectively what it is doing. Yes, that would be clearer and definitely legal. -- <Insert your favourite quote here.> Erik Trulsson ertr1013@student.uu.se To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021106170325.GB19789>