关于结构体计算的一个问题
struct m_Struct
{
unsigned int aaa:5;
unsigned int bbb:1;
unsigned int ccc:1;
unsigned int ddd:1;
m_tmp()
{
aaa= 0;
bbb= 0;
ccc= 0;
ddd = 0;
}
};
m_Struct tmp;
tmp.aaa = 2;
int calcValue = *(int*)&tmp;
请问 calcValue的值等于多少呢?定义成员后面的“:数字”是什么含义呢? 这种方法把结构体取地址转换成整形的值,具体内部的计算逻辑是怎么样计算的呢?由于现在没有编译器,无法验证。明天验证后结贴。 结构体
[解决办法]
这是一个古老的语法了,现在不是很常见了,你在网上搜一下“C++ 位域”会有很详细的说明
这个题的答案应该是16,我口算了,没笔没纸,你可以验证一下,搜一下上面的关键字看明白你就懂了