struct Test
{
int a;
char b;
int c;
} __attribute__((packed, aligned( 128 )))test;
sizeof(test)返回128。
为什么尺寸不是9?
内存是否被舍入到128的倍数?
例如:
struct Test
{
int b;
char c;
} test;
sizeof(test)返回8(舍入为8的倍数)
答案 0 :(得分:3)
如果要创建一个struct Test
数组,那么每个元素都需要128字节对齐,因此需要将每个结构实例填充为128字节的倍数来维持这一点。因此sizeof(struct Test)
= 128。