按位定义一个结构体
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;
本文详细解析了位字段结构体的定义与使用方法,通过一个具体的C语言示例介绍了如何利用位字段结构体来高效地管理和操作二进制数据。包括如何设置各个位字段、如何读取位字段值及内存布局等内容。

被折叠的 条评论
为什么被折叠?



