共用体+结构体(2)

#include <stdio.h>

typedef union
{
    unsigned long dwVal;

    struct
    {
        unsigned short int  LSB;    /* LSB word code */
        unsigned short int  MSB;    /* MSB word code */
    }Word;

    struct
    {
        unsigned char   byte0;        /* bit 7  ~  0 */
        unsigned char   byte1;        /* bit 15 ~  8 */
        unsigned char   byte2;        /* bit 23 ~ 16 */    
        unsigned char   byte3;        /* bit 31 ~ 24 */
    }Byte;

}ULONG;


void main()
{
    ULONG Data;

    Data.dwVal = 12345678;
    printf("Data.dwVal = %ld \n", Data.dwVal);
    printf("Data.Byte = %ld \n", Data.Byte);
    printf("Data.Word = %ld \n", Data.Word);

    printf("Data.Byte.byte3 = %d \n", Data.Byte.byte3);
    printf("Data.Byte.byte2 = %d \n", Data.Byte.byte2);
    printf("Data.Byte.byte1 = %d \n", Data.Byte.byte1);
    printf("Data.Byte.byte0 = %d \n", Data.Byte.byte0);


    printf("Data.Word.MSB = %d \n", Data.Word.MSB);
    printf("Data.Word.LSB = %d \n", Data.Word.LSB);

    printf("Sizeof____Data.dwVal = %d \n", sizeof(Data.dwVal));
    printf("Sizeof____Data.Byte = %d \n", sizeof(Data.Byte));
    printf("Sizeof____Data.Word = %d \n", sizeof(Data.Word));

    printf("Sizeof____Data.Byte.byte3 = %d \n", sizeof(Data.Byte.byte3));
    printf("Sizeof____Data.Byte.byte2 = %d \n", sizeof(Data.Byte.byte2));
    printf("Sizeof____Data.Byte.byte1 = %d \n", sizeof(Data.Byte.byte1));
    printf("Sizeof____Data.Byte.byte0 = %d \n", sizeof(Data.Byte.byte0));

    printf("Sizeof____Data.Word.MSB = %d \n", sizeof(Data.Word.MSB));
    printf("Sizeof____Data.Word.LSB = %d \n", sizeof(Data.Word.LSB));
}

 

posted @ 2015-07-15 10:48  _Fan_  阅读(166)  评论(0编辑  收藏  举报