1 #include <stdio.h>
2 
3 static struct sss{
4   float f;
5   long double a[10];
6 } sss;
7 
8 #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
9 
10 int main (void) {
11   printf ("++++Array of longdouble in struct starting with float:\n");
12   printf ("size=%d,align=%d\n",
13           sizeof (sss), __alignof__ (sss));
14   printf ("offset-float=%d,offset-arrayof-longdouble=%d,\nalign-float=%d,align-arrayof-longdouble=%d\n",
15           _offsetof (struct sss, f), _offsetof (struct sss, a),
16           __alignof__ (sss.f), __alignof__ (sss.a));
17   printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
18           _offsetof (struct sss, a[5]),
19           __alignof__ (sss.a[5]));
20   return 0;
21 }
22