1
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 的倍数)

4

1 回答 1

3

如果要创建一个数组,struct Test那么每个元素都需要 128 字节对齐,因此结构的每个实例都需要填充到 128 字节的倍数以保持这一点。因此sizeof(struct Test)= 128。

于 2012-09-19T11:01:50.677 回答