对齐:是针对单个成员变量的;
补齐:是针对摆放的所有成员变量的整体而言要对齐;
//4字节的对齐粒度
//8字节的对齐粒度
#pragma pack(8) // #pragma pack(n) /* n = 1, 2, 4, 8, 16 */
struct aa{
int ma;
char arr[5];
double cc;
};
—4字节int—||—5字节arr—3字节对齐||—8字节double—4字节补齐||
4 + 8字节(5 + 3) + 8 + 4 = 24字节 (总体应该是对齐粒度的整数倍)
未完待续,抽时间继续深挖……
问题01:为何要对齐和补齐p>
问题02: 他们在计算机硬件和软件上会产生什么影响p>
参考文献
1. https://blog.csdn.net/cyousui/article/details/17655051
2. https://baike.baidu.com/item/%E5%86%85%E5%AD%98%E5%AF%B9%E9%BD%90
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!