C语⾔中#pragmapack的作⽤域
#pragma pack ()是⽤来控制的,⼀般头⽂件中没有的话是默认值,即以结构体中的最⼤元素所占字节对齐;
若存在多个#pragma pack (n),遵从向上对齐原则,即某个定义上⽅最近的⼀个#pragma pack()
以下例⼦中 结构体a 和c上⽅⽆#pragma pack 则按照默认对齐⽅式,即sizeof( a)是 8 ,sizeof(struct c)是3字节⽽结构体b上⽅ 有按照⼀字节定义#pragma pack (1),则sizeof (struct b)是6字节
struct a{undefined
char str;
int inter;
};
struct c{undefined
char str;
char str1;
char str2;
};
#pragma pack(1)
struct b{undefined
char str;
char str1;
c语言struct头文件int inter;
};
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论