#pragma pack(push, 1) typedef struct { unsigned short a1:1; unsigned short a2:1; unsigned short a3:1; unsigned short a4:3; unsigned short a5:1; unsigned short a6:1; unsigned short a7:1; unsigned short a8:1; unsigned short a9:1; unsigned short a10:1; } AAA; typedef union { AAA flag; unsigned short sval; } AAAu; #pragma pack(pop) int main() { AAAu a = {0}; a.flag.a5 = 1; return 0; }