Intel和微软同时出现的C语言面试题 Wu1{[a|
#pragma pack(8) 9`Q<Yy"du
;GGK`V
struct s1{ 'gso'&Uaj
short a; uz30_aH
long b; sEc;!L
}; %~xGkk"I
kAA>FI6
struct s2{ H%F>@(U
char c;
#^#HuDH
s1 d; ^dm!)4W
long long e; qk/:A+
}; %G3(,Qz
: 9t4s#.
#pragma pack() 2";SJF'5\
J% H;%ROx
问 kgdT7
1.sizeof(s2) = ? 5ExDB6Bx@y
2.s2的s1中的a后面空了几个字节接着是b? ~]C%/gEh
Z;l`YK^-
Ev"|FTI/
\55VqGyxu9
如果您知道答案请在讨论中写出,以下是部份网友的答案,供参考: Vr[czfROz'
_nh[(F<hz
网友rwxybh(行云)的答案: yp.[HMRD
内存布局是 mLV[uhq
1*** 11** b75$?_+
1111 **** jnB~sbyA
1111 1111 EZ;"'4;W
:#k &\f-Y
所以答案就是24和3 ]i<[d,
KnhoaBB
下面是一个测试的程序,试一试就知道了,我用的是VC2005 5q9s,r_
rKH:[lKm
#pragma pack(8) ew _-Eb
?<Wb@6kh`
struct s1{ w;UqEC V
short a; // 2 BYtes /H7&AiA