按位定义一个结构体
struct s_DosAttributes
{
unsigned ReadOnly :1;
unsigned Hidden :1;
unsigned System :1;
unsigned VolumeID :1;
unsigned Directory :1;
unsigned Archive :1;
unsigned reserved :2;
};
这个结构共占用4个字节, ReadOnly占用Bit0, Hidden占用Bit1...reserve占用Bit7和Bit6
比如
struct s_DosAttributes st;
memset(&st, 0, sizeof(st));
st.ReadOnly = 1;
st.VolumeID = 1;
st.reserved = 3;
unsigned char c;
memcpy(&c, &st, sizeof(c));
这时c 的值是0xc9;