1
내가 자주 같은 코드를 사용하여 예상대로 작동하지 않습니다GCC __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을 반환합니다.
더 이상 작동하지 않는 이유를 찾지 못했습니다. 구조적으로 프로토콜 버퍼에 액세스하는 다른 방법이 있습니까?