Arm“#pragma anon_unions”允许:
typedef struct {
uint32_t sensorID;
uint8_t messageHeader;
uint8_t messageID;
uint16_t payloadLength;
} Header;
typedef struct {
uint8_t startOfPacket[SERIAL_SOP_SIZE];
Header; // Anonymous.
uint8_t payload[SIZE];
} Packet;
Packet packet;
packet.messageID = 1; // Referencing member of Header through a Packet.
有关在VisualStudio中编译此代码的任何想法吗?
答案 0 :(得分:0)
它在Visual C ++中编译但only in C mode:
Microsoft C扩展允许您声明结构变量 在另一个结构中没有给它起名字。这些嵌套 结构称为匿名结构。 C ++不允许 匿名结构。