On Sun, Apr 20, 2014 at 01:53:33PM +0200, Alexander Huemer wrote:
> Hi,
> 
> On Sun, Apr 20, 2014 at 03:41:40PM +0400, non...@inventati.org wrote:
> > […]
> > -#define LEN(a)     (sizeof(a) / sizeof(a[0]))
> > +#define LEN(a)     (sizeof(a) / sizeof(a)[0])
> > […]
> 
> Why parenthesis anyway? a[0] is an expression, not a type, and there is 
> nothing to group here. sizeof is not a function!

Because it is a macro and there can be another expression (such as m+1
where m is an array).  Macro would expand to
        (sizeof(m+1) / sizeof(m+1[0]))
instead of
        (sizeof(m+1) / sizeof(m+1)[0])

Reply via email to