天天看點

#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

這個在網絡程式設計時,構造資料包的時候會用到,如:原始套接字的網絡程式設計