我正试图找到另一种在C中的位域结构中创建位域结构的方法。
有点像这样:
typedef struct
{
int A : 16;
int B : 16;
} Struct1;
typedef struct
{
int A : 16;
Struct1 B : 32;
} Struct2;
但C编译器不喜欢它,它必须是位字段。 一位朋友提出使用工会,但是想知道是否有人知道除了使用工会之外的另一种方法吗?
谢谢!
答案 0 :(得分:1)
如果我这样做:
typedef struct
{
int A : 16;
int B : 16;
} Struct1;
typedef struct
{
int A : 16;
Struct1 B;
} Struct2;
然后
Struct2 abc;
abc.A = 0x1111;
abc.B.A = 0x1123;
abc.B.B = 0x3334;
接受分配,可以像bitfields一样使用。
答案 1 :(得分:0)
This可能对您有所帮助。当然,你必须稍微改变声明。