#pragma pack

#pragma pack(1)
int main(int argc, char* argv[])
{
struct sample
{
 char a;
 double b;
 };
 printf("%d\n",sizeof(sample));

 return 0;
}

结果是9
如果没有#pragma pack(1),结果是16
#pragma pack(1)意思是结构体和联合按1字节方式对齐,取值有1, 2, 4, 8, or 16
#pragma pack 的值是8
这个在网络编程时,构造数据包的时候会用到,如:原始套接字的网络编程

原文地址:https://www.cnblogs.com/ahuo/p/984722.html