我有 2 个定义如下的结构。
#include<stdint.h>
typedef struct
{
uint32_t a;
uint8_t b;
uint8_t pad[3]; //padding here is added intentionally.
uint32_t c;
}A;
typedef struct
{
uint32_t a;
uint8_t b;
uint8_t pad[3];
uint32_t c;
}__attribute__((__packed__)) B;
这两个结构是否保证在所有硬件平台上具有完全相同的内存布局?可以假设编译器总是gcc。