我想创建一个联合,其中最大的成员是32位整数.这将主要写入.然后有四个8位变量,可能是char类型,每个变量都会引用32位整数类型的不同部分:
union {
int32 myint;
char char1 [7:0];
char char2 [15:8];
char char3 [23:16];
char char4 [31:24];
}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在C++中这样做.
这可能有效:
union {
int32 myint;
char chars[4];
};
Run Code Online (Sandbox Code Playgroud)
小智 6
我不明白你是否想要一个32位内插器和4个8位变量或一个32位内插器分成4个8位变量,但无论如何你应该尝试这样的事情:
union yourUnion {
int32 yourInt;
struct {
int32 var1 : 8;
int32 var2 : 8;
int32 var3 : 8;
int32 var4 : 8;
} yourSplitInterger;
};
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
你可以用这个:
union myUnion {
int32 myint;
struct {
char char1;
char char2;
char char3;
char char4;
} myChars;
};
Run Code Online (Sandbox Code Playgroud)
或者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;
};
Run Code Online (Sandbox Code Playgroud)
看到这里.