0

我试图找到另一种在 C 中的位域结构中创建位域结构的方法。

有点像这样:

typedef struct
{
  int A : 16;
  int B : 16;
} Struct1;

typedef struct
{
  int A     : 16;
  Struct1 B : 32;
} Struct2;

但是 C 编译器不喜欢它,它必须是位域的。一位朋友想出了使用联合,但想知道是否有人知道除了使用联合之外的另一种方法?

谢谢!

4

2 回答 2

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;

接受赋值并且可以像位域一样使用。

于 2013-09-28T23:03:46.577 回答
0

可能对你有帮助。当然,您必须稍微更改声明。

于 2013-09-28T22:49:14.917 回答