作者vito0302 (选择!!)
看板C_and_CPP
标题[问题] 请问一个关於结构大小的问题
时间Mon Apr 20 12:59:32 2009
请问一下一个Struct大小的问题,第一个Struct如下面宣告
先宣告char,再宣告int,最後宣告double,得出的大小为16
这感觉比较没问题。
但如果像struct2这样宣告,只是把某个char的宣告放到int之下
则得出大小为24,请问这二者的作法有什麽差别吗?
Struct 1 Struct 2
struct newtype { struct newtype {
char t; char t;
char tt; char tt;
char tttt;
int ttt;
int ttt; char tttt;
double b; double b;
}abc; }abc;
cout<<sizeof(abc); cout<<sizeof(abc);
输出结果为 16 输出结果为 24
了解了,谢谢回应
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.70.158.148
※ 编辑: vito0302 来自: 203.70.158.148 (04/20 13:00)
※ 编辑: vito0302 来自: 203.70.158.148 (04/20 13:00)
1F:推 littleshan:请 google 找 data structure alignment 04/20 13:01
2F:推 VictorTom:compiler替struct member做data alignment的结果.... 04/20 13:02
3F:→ VictorTom:如果St 1您认为16是合理的, 那St 2应该算得出24才对:) 04/20 13:03
4F:→ VictorTom:喵的, 为什麽小弟的推文总是会慢人家半拍呢....>_<# 04/20 13:04
5F:→ ledia:慈(迟)来大师你好 XD 04/20 13:20
※ 编辑: vito0302 来自: 203.70.158.148 (04/20 13:38)
※ 编辑: vito0302 来自: 203.70.158.148 (04/20 14:01)
6F:→ VictorTom:汪>_<# 其实因为我是Debug版的所以才会慢一点....Q_Q~ 04/20 14:02