| #include <stdio.h> |
| |
| static struct sss{ |
| double f; |
| char * a[10]; |
| } sss; |
| |
| #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16) |
| |
| int main (void) { |
| printf ("++++Array of pointer in struct starting with double:\n"); |
| printf ("size=%d,align=%d\n", |
| sizeof (sss), __alignof__ (sss)); |
| printf ("offset-double=%d,offset-arrayof-pointer=%d,\nalign-double=%d,align-arrayof-pointer=%d\n", |
| _offsetof (struct sss, f), _offsetof (struct sss, a), |
| __alignof__ (sss.f), __alignof__ (sss.a)); |
| printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n", |
| _offsetof (struct sss, a[5]), |
| __alignof__ (sss.a[5])); |
| return 0; |
| } |