您的位置:首页 > 其它

字节对齐实例

2017-09-13 19:56 232 查看
        1:    char   a:     sizeof(a)  =   1;

         2:   int   a  :     sizeof(a)  =   4;

         3:     short  a:       sizeof(a)  =   2;

         4:     long a:            sizeof(a)  =    4;

         5:     double long a:      sizeof(a)   =   8;

         6:     float  a:             sizeof(a)   =    8;

#include <stdio.h>
#pragma pack(2)
struct A
{
int a;
char b;
short c;
};
#pragma pack()

#pragma pack(4)
struct B
{
char b;
int a;
short c;
};
#pragma pack()

int main()
{
printf(“sizeof(A)=%d,sizeof(B)=%d\n”,sizeof(A),sizeof(B));
return 0;
}


输入结果为  8  12

12341120    
100012341200
为了对齐需要补齐

对齐的概念:现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特
定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  字节对齐