我得到了以下联合:
typedef union
{
struct
{
uint8_t LSB;
uint8_t MSB;
};
int16_t complete;
}uint16ByteT;
知道我想使用我的类型并初始化变量。扫描SO(我想(后,我找到了解决方案:
uint16ByteT myVariable = {0};
但是我的编译器给了我一条错误消息:
"@"所需的简单类型
通常,xc8编译器使用"@"在特定地址引入变量。
要初始化匿名struct
/union
uint16ByteT myVariable = {{0}, .complete = 0};
或者干脆
uint16ByteT myVariable = {{0}};
注意uint16ByteT
而不是uint16Byte
另请注意,您需要在 C11 模式下编译,因为此版本中引入了匿名struct
s/union
s。