我想创建一个联合,其中最大的成员是32位整数.这将主要写入.然后有四个8位变量,可能是char类型,每个变量都会引用32位整数类型的不同部分:
union { int32 myint; char char1 [7:0]; char char2 [15:8]; char char3 [23:16]; char char4 [31:24]; }
但我不知道如何在C++中这样做.
这可能有效:
union { int32 myint; char chars[4]; };
我不明白你是否想要一个32位内插器和4个8位变量或一个32位内插器分成4个8位变量,但无论如何你应该尝试这样的事情:
union yourUnion { int32 yourInt; struct { int32 var1 : 8; int32 var2 : 8; int32 var3 : 8; int32 var4 : 8; } yourSplitInterger; };
希望能帮助到你.
你可以用这个:
union myUnion { int32 myint; struct { char char1; char char2; char char3; char char4; } myChars; };
或者uint8_t
:
union myUnion { uint32_t myint; struct { uint8_t b1; uint8_t b2; uint8_t b3; uint8_t b4; // or number them in reverse order } myBytes; };
看到这里.