#include extern void abort(); #pragma ms_struct on typedef struct { void *pv; int l; } Foo; typedef struct { void *pv1; Foo foo; unsigned short fInited : 1; void *pv2; } PackOddity; #pragma ms_struct off int main(int argc, char *argv[]) { #pragma unused(argc, argv) int sizeof_packoddity = sizeof(PackOddity); int offsetof_foo = offsetof(PackOddity, foo); int offsetof_pv2 = offsetof(PackOddity, pv2); if (sizeof_packoddity != 40) abort(); if (offsetof_foo != 8) abort(); if (offsetof_pv2 != 32) abort(); return 0; }