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 中编译此代码有什么想法吗?
最佳答案
它可以在 Visual C++ 中编译,但是 only in C mode :
A Microsoft C extension allows you to declare a structure variable within another structure without giving it a name. These nested structures are called anonymous structures. C++ does not allow anonymous structures.
关于c - Visual Studio 相当于 Arm #pragma anon_unions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11545041/