struct A {long a1; long a2; long a3;} a={1,2,3}; struct B {long a1; long a2; long a3;} b={10,20,30}; struct C {long a1; long a2; long a3;} c={100,200,300}; struct S {long a1; long a2; long a3;} s={(long*)&a,(long*)&b,(long*)&c}; extern long f(long*); return ( 111==f((long*)&s));