结构体中的位字段问题...
最近在看到C++ Primer中文第5版中介绍结构体中的位字段时,书上说:
C++允许指定占用特定位数的结构成员,以方便硬件设备上的寄存器编程.字段的类型应为整形或枚举,后跟冒号,冒号后是一个数字,它指定了使用的位数.也可以使用没有名称的字段来提供间距.
Example:
struct torgle_register
{
unsigned int SN: 4; //4 bits for SN value
unsigned int : 4; //4 bits unused
bool goodIn: 1; //valid inut (1 bit)
bool goodTorgle : 1; //successful torgling
};
torgle_register tr = { 14, true, false };
但是sizeof(torgle_register)时为什么返回的结果为8个字节呀,应该是4+4+1+1=10 bits 呀?
[解决办法]
搜索 内存对齐
看看基础知识