我爲一個μC編程,我具有以下數據結構:C(++)聯盟的數據結構
typedef struct
{
RF12Head head;
typedef union
{
uint8_t raw[40];
typedef struct
{
node_id nodeId;
uint8_t hierachyDepth;
} MessageNodeFound;
} data;
} RF12Message;
甲RF12Message包含一個報頭中的一個數據部分。 現在我想要有不同的消息格式。
我希望能夠做這樣的事情:
RF12Message msg;
memset(&msg.data.raw, 0xEF, sizeof(msg.data.raw)); // fill in directly
//or indirectly:
msg.data.MessageNodeFound.nodeId = 3;
msg.data.MessageNodeFound.hierachyDepth = 2;
但是編譯器跳投拋出一個錯誤:「無效使用‘RF12Message ::數據’的」,爲什麼呢?
謝謝!
數據是工會的一個typedef,不是一個變量... – 2010-11-30 12:27:48