Intel和微软同时出现的C语言面试题 ffh3okyW0
#pragma pack(8) |z.Ov&d4)(
9jrlB0
struct s1{ Fx@@.O6
short a; [\)irCDv
long b; WSV% Oy3V
}; %<'PSri
q]z%<`.9*
struct s2{ <{A |Xs
char c; [f-<M@id/
s1 d; liVj-*m
long long e; zvh&o*\2<d
}; |?<r
'M3V#5l)@|
#pragma pack() H,U qU3b3
,F0bkNBG
问 \oAxmvt
1.sizeof(s2) = ? RQd5Q.
2.s2的s1中的a后面空了几个字节接着是b? Kv6#WN~
#W=H)6
qeoj
Z$ Mc{
如果您知道答案请在讨论中写出,以下是部份网友的答案,供参考: SR&'38UCe
4(}V$#^+
网友rwxybh(行云)的答案: !\N|$-M
内存布局是 l|~SVk|
1*** 11** |PW.CV0,
1111 **** #6qLu
1111 1111 HXRK<6k$
c^BeT;
所以答案就是24和3 ? Eh)JJt
"(SZ;y
下面是一个测试的程序,试一试就知道了,我用的是VC2005 5SmgE2 }
xouy|Nn'
#pragma pack(8) aT%6d@g
%%Z|6V74
struct s1{ )l*6zn`z
short a; // 2 BYtes >-<