David Laight wrote: > I don't believe there is a problem using m[0], just m[non-constant-expr].
Practically speaking, m[0] is not a problem but the standard says ... to the structure member (designated by member-designator), ... ^^^^^^ > OTOH 'sizeof (s *)0->m[0]' might be deemed invalid (because it has > an inferred dereference of NULL. Oh yes. I can change it to: extern void *foo(void); and then sizeof(((s *)foo())->m[0]) but NULL should work too. So, if we reached a consensus on this, where should I add the macro? Alex