pragma 常用于网络编程中自定义协议,指定结构体成员的字节对齐,当没有指定pragma时,程序会按照结构体中最长的变量进行字节的对齐
而使用pragma后,程序会先判断 pragma 定义的大小与结构体中最长变量的大小 ,取二者较小的进行字节对齐。
struct foo
{
char c1;
short s;
char c2;
int i;
long j;
};
sizeof foo 的大小 为24
#pragma pack(4)
struct foo
{
char c1;
short s;
char c2;
int i;
long j;}
sizeof foo 的大小 为20
#pragma pack()