Intel和微软同时出现的C语言面试题 3&*0n^g
#pragma pack(8) ^F*)Jq
T[))ful
struct s1{ /x_C
short a; @];#4O
long b; MW9B
-x
}; ,IUMH]D
U]sU
b3
struct s2{ (2@b ,w^
char c; 4qda!%
s1 d; 4x'^?0H@
long long e; 1elx~5v1.=
}; y_"GMw
)EO/P+&
#pragma pack() 9\)NFZ3Mz
8O{]ML
问 :0T]p"y4
1.sizeof(s2) = ? ?HIc=
2.s2的s1中的a后面空了几个字节接着是b? `n-e.{O((
u2<:mu[|P
Oe9{`~
0jv9N6IM
如果您知道答案请在讨论中写出,以下是部份网友的答案,供参考: z>j%-3_1
KHr8\qLH
网友rwxybh(行云)的答案: 1jmhh!,
内存布局是 jTws0=F*
1*** 11** wri[#D {
1111 **** zJ9ZqC]
1111 1111 z!Kadqns
hl~(&D1^
所以答案就是24和3 ;$i9gP[|m
"4"\tM(
下面是一个测试的程序,试一试就知道了,我用的是VC2005 S=aXmz<
~Y)Au?d(a
#pragma pack(8) qe(X5?#;
`j>qOT
struct s1{ <O$'3_S"D
short a; // 2 BYtes l%Sz6
long b; // 4 Bytes tzpGKhrk6
}; jo<