From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: question regarding gnu-isms Date: Thu, 27 Apr 2006 18:44:37 -0500 Message-ID: <44515765.5020107@us.ibm.com> References: <20060427223641.GG3572@vino.zko.hp.com> <44514DE1.3000201@us.ibm.com> <20060427231606.GH3572@vino.zko.hp.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20060427231606.GH3572@vino.zko.hp.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Anthony Liguori , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Aron Griffis wrote: > Hi Anthony, > > Thanks for the explanation of the struct initialization. Regarding > the second one, though... > > Anthony Liguori wrote: [Thu Apr 27 2006, 07:04:01PM EDT] > >> Aron Griffis wrote: >> >>> #define xen_create_contiguous_region(vstart, order, address_bits) >>> ({0;}) >>> >> This is a really common one that lets you make statements into >> expressions. >> > ... > >> #define min(a, b) ({int lhs = a; int rhs = b; (lhs < rhs) ? lhs : rhs;}) >> > > That makes sense for the example you gave, but how does it apply to > the definition in question? Is there any difference between ({0;}) > and (0) or even 0? > Can you point me to where you saw this (and in what version of Xen)? There is no difference between (0) and 0 of course. I don't *think* there's a difference between ({0;}) and (0) but of course I've seen stranger things before. My guess is that it started it's life as a more complex set of statements and overtime was reduced to just that. Regards, Anthony Liguori >> All of these are documented in the GCC Info page (see the section on >> C Extensions). >> > > :-) I read that before posting, so I was familiar with the purpose of > enclosing compound statements in expressions. But I'll reread in case > there's something I missed regarding the interpretation of ({0;}) > > Regards, > Aron >