2012-07-18 43 views
0

的臂 「的#pragma anon_unions」 允許:VisualStudio的eqivalent到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

它編譯在Visual C++,但only in C mode

微軟的C擴展可以讓你與其他結構內聲明結構變量 沒有給它一個名字。這些嵌套的 結構稱爲匿名結構。 C++不允許 匿名結構。

+0

乾杯 - 那讓我在那裏。 – Ricibob 2012-07-18 17:16:26