Temp

来源:互联网 发布:陕西广电网络上班时间 编辑:程序博客网 时间:2024/05/29 19:15


联合体位域用法

#include <stdio.h>typedef unsigned char BYTE;typedef union _BYTE_BITS{    BYTE byte;    struct    {        unsigned char bit0:1;        unsigned char bit1:1;        unsigned char bit2:1;        unsigned char bit3:1;        unsigned char bit4:1;        unsigned char bit5:1;        unsigned char bit6:1;        unsigned char bit7:1;    } bits;} BYTE_BITS;typedef unsigned short WORD;typedef union _WORD_BYTES{    WORD word;    BYTE bytes[2];    struct    {        BYTE low;        BYTE high;    } byte;    struct    {        unsigned char bit0:1;        unsigned char bit1:1;        unsigned char bit2:1;        unsigned char bit3:1;        unsigned char bit4:1;        unsigned char bit5:1;        unsigned char bit6:1;        unsigned char bit7:1;        unsigned char bit8:1;        unsigned char bit9:1;        unsigned char bit10:1;        unsigned char bit11:1;        unsigned char bit12:1;        unsigned char bit13:1;        unsigned char bit14:1;        unsigned char bit15:1;    } bits;} WORD_BYTES;typedef unsigned int DWORD;typedef union _DWORD_BYTE{    DWORD dword;WORD words[2];    BYTE bytes[4];    struct    {        WORD low;        WORD high;    } word;    struct    {        BYTE LB;        BYTE HB;        BYTE UB;        BYTE MB;    } byte;    struct    {        unsigned char bit0:1;        unsigned char bit1:1;        unsigned char bit2:1;        unsigned char bit3:1;        unsigned char bit4:1;        unsigned char bit5:1;        unsigned char bit6:1;        unsigned char bit7:1;        unsigned char bit8:1;        unsigned char bit9:1;        unsigned char bit10:1;        unsigned char bit11:1;        unsigned char bit12:1;        unsigned char bit13:1;        unsigned char bit14:1;        unsigned char bit15:1;        unsigned char bit16:1;        unsigned char bit17:1;        unsigned char bit18:1;        unsigned char bit19:1;        unsigned char bit20:1;        unsigned char bit21:1;        unsigned char bit22:1;        unsigned char bit23:1;        unsigned char bit24:1;        unsigned char bit25:1;        unsigned char bit26:1;        unsigned char bit27:1;        unsigned char bit28:1;        unsigned char bit29:1;        unsigned char bit30:1;        unsigned char bit31:1;    } bits;} DWORD_BYTES;int main(void) {// your code goes hereDWORD_BYTES word;word.bits.bit0 = 1;word.bits.bit4 = 1;word.bits.bit9 = 1;printf("0x%.4x\n", word.bits);return 0;}



0 0
原创粉丝点击