Intel和微软同时出现的C语言面试题 R?L?6~/q
#pragma pack(8) (YC{BM}
j Wjp0ii
struct s1{ _ISaO
C{2-
short a; R+b~m!58
long b; yi&6HNb
}; c]1\88
YQ$EN>.eO
struct s2{
_CImf1
char c; w8iXuRv
s1 d; /*kc|V
long long e; i2&I<:
}; QpI\\Zt6
"eG@F
#pragma pack() 0Q4i<4 XW
qayM0i>>
问 U6x$R O!
1.sizeof(s2) = ? o>i@2_r\&H
2.s2的s1中的a后面空了几个字节接着是b? TnXx;v
(mOL<h[)IP
rJ=r_v
+L
U.QI'
如果您知道答案请在讨论中写出,以下是部份网友的答案,供参考: -Wm'@4bH
lv!8)GX|
网友rwxybh(行云)的答案: V7(-<})8
内存布局是 wS+ekt5
1*** 11** pgipT#_K
1111 **** hSgH;k
1111 1111 =V>inH
Hzc5BC
所以答案就是24和3 U!O"f
K'\Jnn
下面是一个测试的程序,试一试就知道了,我用的是VC2005 R>T9 H0
CAa&,ZR
#pragma pack(8) PP&