Visual Studio相当于Arm #pragma anon_unions

时间:2012-07-18 15:36:13

标签: c struct arm keil

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中编译此代码的任何想法吗?

1 个答案:

答案 0 :(得分:0)

它在Visual C ++中编译但only in C mode

  

Microsoft C扩展允许您声明结构变量   在另一个结构中没有给它起名字。这些嵌套   结构称为匿名结构。 C ++不允许   匿名结构。