я часто использую такой код:НКУ __packed__ не работает, как ожидалось
struct teststruct
{
uint8_t i1;
uint16_t i2;
uint32_t i4;
} __attribute__((__packed__));
struct teststruct *protocol = (struct teststruct *)buffer;
uint16_t var = protocol->i2;
Чтобы получить доступ к данным протокола с помощью структур.
Код работает для AVR gcc 4.6, 4.7 и Win32 4.6, 4.7 и Linux 4.6 Однако теперь из (MingW) gcc 4.8 он работает не так, как ожидалось. sizeof (struct teststruct) вернется 8.
Я не нашел никаких подсказок, почему он больше не работает. Или есть другой способ получить доступ к буферу протокола структурным способом?