代码验证
#include <iostream>
#include <stdio.h>
using namespace std;
/*
https://www.cnblogs.com/ningvsban/p/3940153.html
https://blog.csdn.net/m0_37829435/article/details/81348532
总结:
内存对齐原则
1、 对于结构的各个成员,第一个成员位于偏移为0的位置,以后每个数\
据成员的偏移量必须是min(#pragma pack()指定的数,这个数据成员的自身长度) 的倍数。
2、 在数据成员完成各自对齐之后,结构(或联合)本身也要进行对齐,对\
齐将按照#pragma pack指定的数值和结构(或联合)最大数据成员长度中,比较小的那个进行。
*/
#pragma pack(8)
struct A {
short b;//2+补齐2,保证int c起始地址的偏移量是min(pack(8),int(4))=4的倍数
int c;//4
char a;//
};
#pragma pack()
#pragma pack(2)
struct B {
short b;//2
int c;//4
char a