结构:
类型 变量名:位长度; 如: int i:3;
使用变量名直接控制一些bit;
结构体占用空间最小为变量类型的固有长度
1 2 3 4 5 6 7 |
//两个int占用一个int空间 struct intS{ int i1:3; int i2:5; } ; intS p1; cout << sizeof(p1)<< endl;//4 |
使用一个位域长度为0的匿名字段强制下一个位域字段在新的存储单元进行;
1 2 3 4 5 6 7 |
struct intS{ int i1:3; int :0; int i2:5; } ; intS p1; cout << sizeof(p1)<< endl;//8, int 占4字节 |
以结构体里最长的类型对其长度. 所以长度为最长单位的倍数;
1 2 3 4 5 6 7 8 |
struct intS{ int i1:3; int :0; int i2:30; char c1:5; } ; intS p1; cout << sizeof(p1)<< endl;//12, char 扩展占4字节, |
注意点:
- 位域长度不能大于该类型的一个单位固有长度, 如 int 最大位域长度为 32;
0 Comments