#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
这个在网络编程时,构造数据包的时候会用到,如:原始套接字的网络编程

posted @ 2007-12-06 09:33  ahuo  阅读(628)  评论(0编辑  收藏  举报