Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #62162

Re: curly braces inside for loop parameter

From Ben Bacarisse <ben.usenet@bsb.me.uk>
Newsgroups comp.lang.c
Subject Re: curly braces inside for loop parameter
Date 2015-05-17 15:52 +0100
Organization A noiseless patient Spider
Message-ID <87bnhjmf24.fsf@bsb.me.uk> (permalink)
References <a6f4eb2e-e20e-41da-b007-db42b48b0421@googlegroups.com> <braces-20150517163825@ram.dialup.fu-berlin.de>

Show all headers | View raw


ram@zedat.fu-berlin.de (Stefan Ram) writes:

> Daniel Doron <danielmeirdoron@gmail.com> writes:
>>#define hlist_for_each_entry(tpos, pos, head, member)			 \
>>	for (pos = (head)->first;					 \
>>	     pos &&							 \
>>		({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
>>	     pos = pos->next)
>>Can someone explain this? 
>
>   1st, one can legally #define anything, the RHS does not have to be C.
>
>   2nd, a compound literal (6.5.2.5) does not seem to be possible here,
>   it must be a GNU extension. One can guess its meaning from the »1;«.

It's not the right syntax for a compound literal.  It's a GNU extension
-- an expression formed from a block statement (as you say, guessable
from the 1).  Odd because it's not needed here.  A plain

  (tpos = hlist_entry(pos, typeof(*tpos), member), 1)

would do.

-- 
Ben.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

curly braces inside for loop parameter Daniel Doron <danielmeirdoron@gmail.com> - 2015-05-17 06:56 -0700
  Re: curly braces inside for loop parameter asetofsymbols@gmail.com - 2015-05-17 07:49 -0700
  Re: curly braces inside for loop parameter Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-17 15:52 +0100
  Re: curly braces inside for loop parameter Bartc <bc@freeuk.com> - 2015-05-17 16:01 +0100
    Re: curly braces inside for loop parameter David Kleinecke <dkleinecke@gmail.com> - 2015-05-17 09:14 -0700
      Re: curly braces inside for loop parameter Bartc <bc@freeuk.com> - 2015-05-17 17:43 +0100
    Re: curly braces inside for loop parameter raltbos@xs4all.nl (Richard Bos) - 2015-05-23 10:33 +0000
  Re: curly braces inside for loop parameter Keith Thompson <kst-u@mib.org> - 2015-05-17 12:28 -0700
  curly braces inside for loop parameter Chad <cdalten@gmail.com> - 2015-05-17 13:53 -0700
    Re: curly braces inside for loop parameter gazelle@shell.xmission.com (Kenny McCormack) - 2015-05-17 21:36 +0000

csiph-web