我有以下自学代码:
#include <iostream>
using namespace std;
struct bitfields{
unsigned field1: 3;
unsigned field2: 4;
unsigned int k: 4;
};
int main(){
bitfields field;
field.field1=8;
field.field2=1e7;
field.k=18;
cout<<field.k<<endl;
cout<<field.field1<<endl;
cout<<field.field2<<endl;
return 0;
}
我知道这unsigned int k:4
意味着 k 是 4 位宽,或最大值为 15,结果如下。
2
0
1
例如,filed1
可以从 0 到 7(包括),field2
从k
0 到 15。为什么会出现这样的结果?也许它应该全部为零?