![]()
【注意】如果指定了对齐字节,则将在对齐过程中将该对齐与下一个对齐进行比较计算结构体大小计算结构体大小,而较小的将用于对齐.

完成后,与最大的一个进行比较,然后选择较小的一个来完成.

代码如下:

1 struct A { 2 char b; 3 int a; 4 short c; 5 }; 6 7 #pragma pack (2) /*指定按2字节对齐*/ 8 struct B { 9 char b; 10 int a; 11 short c; 12 }; 13 #pragma pack () /*取消指定对齐,恢复缺省对齐*/ 14 15 16 17 #pragma pack (1) /*指定按1字节对齐*/ 18 struct C { 19 char b; 20 int a; 21 short c; 22 }; 23 #pragma pack ()/*取消指定对齐,恢复缺省对齐*/ 24 25 //计算所占字节 26 int s1=sizeof(struct A); 27 int s2=sizeof(struct B); 28 int s3=sizeof(struct C); 29 30 printf("%d\n",s1); 31 printf("%d\n",s2); 32 printf("%d\n",s3);
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-204091-1.html
和平统一