Intel和微软同时出现的C语言面试题 $ehg@WK}.
#pragma pack(8) 9[|4[3K
GH3#E*t+[
struct s1{ Qp!Y.YnPd_
short a; *PM}"s
long b; IF?xnu
}; -WT3)On
e!o(g&wBj
struct s2{ cj(X2L
char c; hswTn`f
s1 d; <FmBa4ONU
long long e; #Mi|IwL
}; ^&:'NR
O2H/rFx4
#pragma pack() c)1=U_6 1
wR7aQg
问 +(ny|r[#
1.sizeof(s2) = ? p~bkf>
2.s2的s1中的a后面空了几个字节接着是b? 3B,QJ&
o?!uX|Fy
0MpS4tW0=
~+m,im8}
如果您知道答案请在讨论中写出,以下是部份网友的答案,供参考: 9 )Yw
:
6D9o08
网友rwxybh(行云)的答案: E8tD)=1
内存布局是 y-cw~kNPP3
1*** 11** /{G/|a
1111 **** YhgUCF#
1111 1111 d1NE% hg3
9oq)X[
所以答案就是24和3 BQ#jwu0e
98<zCSe\]
下面是一个测试的程序,试一试就知道了,我用的是VC2005 C.E[6$oVc
oO:LG%q
#pragma pack(8) yH(V&T