Intel和微软同时出现的C语言面试题 $P<T`3Jg
#pragma pack(8) 5]C}044
-+1_ 1!
struct s1{ 7G,{BBB
short a; 1Z9_sd~/6
long b; \#1*r'V8
}; ]/byz_7]
>`\f,yql6
struct s2{ ahezDDR-.i
char c; 21(8/F ~{
s1 d; hC1CISm.U
long long e; zJ-_{GiM*L
}; }M3f ?Jv
S"t6 *fWr
#pragma pack() DeqTr:
Ql~9a
[8T~
问 oW0A8_|9
1.sizeof(s2) = ? |>w>}w`~
2.s2的s1中的a后面空了几个字节接着是b? cJb.@8^J
8:W,""
;ZnSWIF2
;Y/{q B!
如果您知道答案请在讨论中写出,以下是部份网友的答案,供参考: um/2.Sn>
$U3|.4
网友rwxybh(行云)的答案: E0F8FR'
内存布局是 P''5A6#5
1*** 11** :.;pRz
1111 **** 4J #F;#iA
1111 1111 +y%"[6c|
lrn3yDkR?
所以答案就是24和3 CcF$?07 i
uJBs 3X
下面是一个测试的程序,试一试就知道了,我用的是VC2005 ;rBd_
a/})X[2
#pragma pack(8) *,C[yg1P
rL{3O4O
struct s1{ >Yr-aDV
short a; // 2 BYtes {_#~&I