1 extern void abort (void); 2 3 struct A 4 { 5 int i; 6 }; 7 struct B 8 { 9 struct A a; 10 int j; 11 }; 12 13 static void foo(struct B * p)14foo (struct B *p) 15 { 16 ((struct A *)p)->i = 1; 17 } 18 main()19int main() 20 { 21 struct A a; 22 a.i = 0; 23 foo ((struct B *)&a); 24 if (a.i != 1) 25 abort (); 26 return 0; 27 } 28 29