Messages in this thread | | | Date | Fri, 3 Aug 2012 15:36:34 -0700 | From | Tejun Heo <> | Subject | Re: [RFC v2 1/7] hashtable: introduce a small and naive hashtable |
| |
On Fri, Aug 03, 2012 at 03:29:10PM -0700, Linus Torvalds wrote: > On Fri, Aug 3, 2012 at 3:23 PM, Tejun Heo <tj@kernel.org> wrote: > > > > I actually meant an enclosing struct. When you're defining a struct > > member, simply putting the storage after a struct with var array > > should be good enough. If that doesn't work, quite a few things in > > the kernel will break. > > The unsigned member of a struct has to be the last one, so your struct > won't work.
I suppose you mean unsized. I remember this working. Maybe I'm confusing it with zero-sized array. Hmm... gcc doesn't complain about the following. --std=c99 seems happy too.
#include <stdio.h>
struct A { int i; long ar[]; };
struct B { struct A a; long ar_storage[32]; };
int main(void) { printf("sizeof(A)=%zd sizeof(B)=%zd\n", sizeof(struct A), sizeof(struct B)); return 0; }
$ ./a.out sizeof(A)=8 sizeof(B)=264
-- tejun
| |