Я программирую для микроконтроллера, у меня следующая структура данных:
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 :: data »», почему?
спасибо!