个人草草总结没有充分验证:
没有任何限定是结构体各成员自然边界对齐(long,long long ,double 4 bytes 在arm 里 ),结构体本身按照其最大成员自然边界对齐。
gcc 中有两种可以影响结构对齐的属性:一种是,#pragma pack(n), #pragma pack()组合;或 __attribute__((pack(n)));或 __attribute__((packed))。他们只对自然边界大于n的类型(包括结构等自定义类型)起作用 另一种是,__attribure__((aligned(n))), 他显式限定某成员或结构等在n字节边界上对齐。这些属性当然也就影响结构等类型的size。