1 #include <stdio.h> 2 3 static struct sss{ 4 char * f; 5 long :0; 6 int i; 7 } sss; 8 9 #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16) 10 11 int main (void) { 12 printf ("+++long zerofield inside struct starting with pointer:\n"); 13 printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss)); 14 printf ("offset-pointer=%d,offset-last=%d,\nalign-pointer=%d,align-last=%d\n", 15 _offsetof (struct sss, f), _offsetof (struct sss, i), 16 __alignof__ (sss.f), __alignof__ (sss.i)); 17 return 0; 18 } 19