我定义了下面的联合体:typedef union
{ /* a byte can be seen as */
char HY_SC;              /* a 1 byte signed integer */
unsigned char HY_UC;     /* a 1 byte unsigned integer */ struct
{
unsigned int HY_L:4;  /* left digit */
unsigned int HY_R:4;  /* right digit */
} HY_DIGITS;             /* two digits */
struct
{
          unsigned int HY_b1:1; /* bit 1 */
          unsigned int HY_b2:1; /* bit 2 */
          unsigned int HY_b3:1; /* bit 3 */
          unsigned int HY_b4:1; /* bit 4 */
          unsigned int HY_b5:1; /* bit 5 */
          unsigned int HY_b6:1; /* bit 6 */
 unsigned int HY_b7:1; /* bit 7 */
 unsigned int HY_b8:1; /* bit 8 */
} HY_BITS;               /* 8 different bits */} HYM_SPR_BYTE; /* useful structures within a byte */但是当用sizeof(HYM_SPR_BYTE)取长度时,得到的却是4(我想应该是1的)。
用#pragma pack (1) 还是同样的结果。用的环境是WIN2000(PENTIUM M),VS6。
请问怎么样才能得到1。