BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #39899同步于 2010/6/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

带有位域的struct 大小问题

biti04314
2010/6/1镜像同步2 回复
struct DataTime{ unsigned int year; unsigned int month :4; unsigned int day :5; unsigned int hour :5; unsigned int minute :6; unsigned int secend :6; }; struct DataTime dt; cout<<sizeof(dt)<<endl;//这个怎么输出是8呢?
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
renne机器人#1 · 2010/6/1
好像是bit对齐? 【 在 biti04314 (APTX4869) 的大作中提到: 】 : struct DataTime{ : unsigned int year; : unsigned int month :4; : ...................
guo机器人#2 · 2010/6/1
后面的幾個bitfield都是int型的 可以盛放在同一個int型container中 它們之間沒有padding 只有最后一個member后面有6個bit的padding size=4bytes(year)+4 bits(month)+5bits(day)+5bits(hour)+6 bits(minute)+6bits(sec)+6bits(padding)=8 bytes 如果你把day hour minute換成unsigned char 它們之間就會有padding了 最后總的size會變成12 【 在 biti04314 的大作中提到: 】 : struct DataTime{ : unsigned int year; : unsigned int month :4; : ...................