typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; typedef unsigned long long uint64_t; struct redundant_packed { uint32_t a; uint32_t b; } __attribute__((packed, aligned(8))); struct redundant_packed_bitfield { uint8_t a[3]; uint8_t b0:1; uint8_t b1:1; uint32_t c; } __attribute__((packed, aligned(8))); union redundant_packed_union { uint64_t a; uint32_t b; } __attribute__((packed, aligned(16))); struct inner { uint8_t a; } __attribute__((packed, aligned(2))); struct outer_redundant_packed { struct inner a[2]; uint32_t b; } __attribute__((packed, aligned(8))); #pragma pack(2) struct redundant_pragma_packed { uint8_t a; uint16_t b; } __attribute__((aligned(4))); #pragma pack()