如下结构体占用多少字节?谢谢

Jminger 2010-07-28 10:40:26
struct p5{
char c;
int d;
short i;
double f;
};
struct p5结构体以8字节对齐,那么该结构体占用多少字节呢?是24字节吗?谢谢。
...全文
485 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jminger 2010-07-28
  • 打赏
  • 举报
回复
刚才我试了一下,GCC编译器默认是4字节对齐。所以不加-malign-double编译选项的话,此时编译出来就是占用20字节。如果加-malign-double编译选项,那么就是占用24字节。呵呵
newxdlysk 2010-07-28
  • 打赏
  • 举报
回复
楼主什么编译器 我vc gcc都是24
liutengfeigo 2010-07-28
  • 打赏
  • 举报
回复
....
Jminger 2010-07-28
  • 打赏
  • 举报
回复
5楼的计算方法应该是正确的,但是实际上sizeof求解出来是20字节,不知道到为什么?呵呵
newxdlysk 2010-07-28
  • 打赏
  • 举报
回复
数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储。
newxdlysk 2010-07-28
  • 打赏
  • 举报
回复
char [0]
int [4]-[7]
short [8]-[9]
double [16]-[23]
一共24个
Jminger 2010-07-28
  • 打赏
  • 举报
回复
不是16,int类型本身还要4字节对齐,short本身还要2字节对齐。
mstlq 2010-07-28
  • 打赏
  • 举报
回复
按8字节对齐的话,就是16
yongziqd 2010-07-28
  • 打赏
  • 举报
回复
1+4+2+4=10
DayDayUpCQ 2010-07-28
  • 打赏
  • 举报
回复
不太懂,可以用sizeof求一下,等待高手解答,顶一下

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧