//-std=c99 -Wall -Wextra -Wpedantic -Wshadow //gcc 64bit #include #include #include int main() { typedef float vec2[2]; typedef float vec3[3]; typedef float vec4[4]; struct st{ char a; int b; float c; double d; vec2 v2; vec3 v3; vec4 v4; }; printf( "offsetof a: %ld\n", offsetof( struct st, a) ); printf( "offsetof b: %ld\n", offsetof( struct st, b) ); printf( "offsetof c: %ld\n", offsetof( struct st, c) ); printf( "offsetof d: %ld\n", offsetof( struct st, d) ); printf( "offsetof v2: %ld\n", offsetof( struct st, v2) ); printf( "offsetof v3: %ld\n", offsetof( struct st, v3) ); printf( "offsetof v4: %ld\n", offsetof( struct st, v4) ); return 0; } /* output: offsetof a: 0 offsetof b: 4 offsetof c: 8 offsetof d: 16 offsetof v2: 24 offsetof v3: 32 offsetof v4: 44 */