C/C++之内存对齐

1、什么是内存对齐

计算机系统对基本类型数据在内存中放的位置做了限制,它们会要求这些数的首地址是一个数(一般为4和8)的整数倍,我们看下结构体的大小
#include 
struct A
{
    char a;
    int b;
};

int main()
{
    printf("size of struct A is %d\n", sizeof(struct A));
    return 0;
}

结果:
1111deMacBook-Pro:digui a1111$ ./sizeof
size of struct A is 8

结果是8,不是5,是由于内存对齐导致
 
1:a
2
3
4
5:b
6
7
8

 

 
 
 
 


2、为什么要内存对齐

你可能感兴趣的:(C&C++,内存对齐,为什么要内存对齐,用#pragma,packn对内存不对齐,pragma)