先贴个代码:
#include<iostream>
#include<string>
using namespace std;
typedef struct my{
char len:4;
char size:4;
}MY, *pMY;
void main()
{
MY my_1;
memccpy(&my_1,"A",'A',1);
printf("%d",my_1.len & 0xf);
cout<<endl;
printf("%d",my_1.size&0xf);
cout<<endl;
return ;
}
‘A’的ASCII为65,my_1.size为4,my_1.len为1,这里是16进制,my_1.size存放的是高4位,而my_1.len存放的是低4位(也是通过本次测试发现的,以前没怎么注意)
以后要好好注意在结构体中定义位变量了。。以前没怎么测试。。。
本文通过一个具体的C++代码示例介绍了如何使用位字段,并强调了在结构体中定义位字段时需要注意的问题。示例代码展示了如何初始化位字段以及进行简单的读取操作。
158

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



