关于结构体变量sizeof(structA)的大小问题?

来源:百度知道 编辑:UC知道 时间:2024/05/06 01:26:31
struct A
{
char t;
char s;
int r;
};
sizeof(A)=? 验证VC++上确是8,按习惯应该是6, why?

好像是按4字节对齐

大小跟对齐方式有关,一般是4字节对齐。
但也可以改变对齐方式,使用
#pragma pack(1)
这样就按1字节对齐了,不过这样可能会影响效率,如非特殊需要,最好不要改

内存对齐
都是4的倍数
6的话 就是等一下 6 + 2 = 8

在不同的编译环境下是不同的,这是很正常的,每个编译环境中,相同数据类型所占的字节数会发生改变。