字节对齐与sizeof

来源:互联网 发布:matlab 遍历二维矩阵 编辑:程序博客网 时间:2024/05/18 02:15
一.
sizeof : 运算符,sizeof(a),在编译阶段用a占用的栈空间大小替换sizeof(a).
1.
class test
{
int n;
static int m;
}
sizeof (test)==4!=8  因为static放在静态区而不是栈空间,所以sizeof 不于计算。


2.


int a=0;
sizeof(a=1)==4     此句之后a的值还为0,因为sizeof 只进行替换,不进行计算。


3. int fun(){return 1;}


sizeof(fun())==4


二.


1.自然对齐。  #pagram pack()




2.强制对齐。 32位的机器,最多对齐到4字节。


对齐后使结构体的大小对齐要求的整数倍。