linux 64 位默认 结构体对齐系数为8
使用pack指定字节对齐的字节数
补充字节 = min(字节对齐,结构体最成员)
举例:
#include<iostream>
using namespace std;
struct my_struct_1 //16
{
char a; //1
double b; //之前补7 +8 8/8==1
};
#pragma pack(4)
struct my_struct_2//16
{
char a; //1
double b; //3+8
int c; //4 16/4=4
};
#pragma pack()
#pragma pack(4)
struct my_struct_2_2 //12
{
char a; //1
double b; //之前补3 +8 12/4==3