vc++__字节对齐

按照struct中的每个元素,进行累加
如果和没超过8,继续加,如果超过8了,先填充到8,然后开辟新的一块8字节内存。

比如
struct A
{
char a;
int b;
double c;
};
sizeof(A) = 16

char 1 不到8,OK
int 4 1+4=5不到8, OK
double 8 5+8超过8了,就先把5填到8,然后再加8,就是16

如果是struct A
{
int b;
double c;
char a;
};
那么int 4 不到8 ,OK
double 8 8+4超过8, 4先填充到8,再分配8,此时16
char a,最长的都是8了,a自动填充到8
就是16+8 = 24

posted on 2008-10-20 20:37  oskycar  阅读(278)  评论(0编辑  收藏  举报

导航