liv*_*e75 6 c++ struct unions bit-fields
我有以下系列的结构.
struct FooWord1
{
unsigned int Fill : 8;
unsigned int someData1 : 18;
unsigned int someData2 : 6;
};
struct FooWord2
{
unsigned int Fill : 8;
union
{
unsigned int A_Bit : 1;
unsigned int B_Bit : 1;
};
unsigned int someData3 : 23;
};
struct Foo_Data
{
FooWord1 fooWord1;
FooWord2 fooWord2;
FooWord3 fooWord3; // similar to FooWord1
FooWord4 fooWord4; // similar to FooWord1
FooWord5 fooWord5; // similar to FooWord1
};
Foo_Data fooArray[SIZE];
Run Code Online (Sandbox Code Playgroud)
数据fooArray从网络消息逐字节复制.someData3如果我们不使用带有1位字段(A_bit和B_bit)的联合,我们得到我们期望的数据,但是一旦我们放入联合,单词就会被"关闭"2个单词.
我们希望在那里使用联合,因为这些结构用于不同类型的消息,但是不同消息的含义A_Bit和B_Bit不同.我们可以使用注释,但在代码中执行它会很好.
我究竟做错了什么?
| 归档时间: |
|
| 查看次数: |
556 次 |
| 最近记录: |