2024年1月7日发(作者:)

#include

main()

{

struct A {

int a;

char b;

short c;

};

struct B {

char b;

int a;

short c;

};

#pragma pack (2) /*指定按2字节对齐*/

struct C {

char b;

int a;

short c;

};

#pragma pack () /*取消指定对齐,恢复缺省对齐*/

#pragma pack (1) /*指定按1字节对齐*/

struct D {

char b;

int a;

short c;

};

#pragma pack ()/*取消指定对齐,恢复缺省对齐*/

int s1=sizeof(struct A);

int s2=sizeof(struct B);

int s3=sizeof(struct C);

int s4=sizeof(struct D);

printf("%dn",s1);

printf("%dn",s2);

printf("%dn",s3);

printf("%dn",s4);

}

输出:81287

修改代码:struct A { // int a; char b; short c;};