如何使用位域结构和联合生成 4 个字节?
How to make 4 bytes using bit field struct and union?
这是代码。
struct test {
struct abc {
int a : 24;
union b {
int b1 : 10;
int b2 : 14;
};
};
int c : 8;
};
我想将结构 abc 设为 3 字节大小,再加上一个额外的 1 字节大小变量以构成一个 4 字节结构。但是,由于内部结构实际上显示为 4 个字节,而结构测试的总大小为 5 个字节。
我使用的是 Visual Studio 2017 版。 (而且我也已经使用了 packed 选项)
如何将结构调整为 4 个字节?这是在已经在使用的代码中发现的一个错误,所以依赖性太大,我无法更改变量的顺序或在其中创建新结构。
#pragma pack(1)
struct test {
struct abc {
short a;
union b {
byte b1;
byte b2;
}_b;
}_abc;
byte c;
};
这是代码。
struct test {
struct abc {
int a : 24;
union b {
int b1 : 10;
int b2 : 14;
};
};
int c : 8;
};
我想将结构 abc 设为 3 字节大小,再加上一个额外的 1 字节大小变量以构成一个 4 字节结构。但是,由于内部结构实际上显示为 4 个字节,而结构测试的总大小为 5 个字节。
我使用的是 Visual Studio 2017 版。 (而且我也已经使用了 packed 选项)
如何将结构调整为 4 个字节?这是在已经在使用的代码中发现的一个错误,所以依赖性太大,我无法更改变量的顺序或在其中创建新结构。
#pragma pack(1)
struct test {
struct abc {
short a;
union b {
byte b1;
byte b2;
}_b;
}_abc;
byte c;
};