1. IBM 笔试题: {% highlight c linenos %} struct { short a1; short a2; short a3; } A;
struct { long a1; short a2; }B; {% endhighlight %} 注:sizeof(short) = 2; sizeof(long) = 4。 sizeof(A) = 6; sizeof(B) = 8; 为什么?
2. 微软笔试题: {% highlight c linenos %} struct example1 { short a ; long b; };
struct example2 { char c; example1 struct1; short e;
};
int main(int argc, char* argv[]) { example2 e2; int d = (unsigned int)&e2.struct1 – (unsigned int)&e2.c; printf(“%d, %d, %d\n”, sizeof(example1), sizeof(example2), d); return 0; } {% endhighlight %} Output:?
结果:8 16 4
3. Intel 笔试题: {% highlight c linenos %}
include “stdafx.h”
include
struct bit {
int a:3; int b:2; int c:3; };
int main(int argc, char* argv[]) {
bit s; char *c = (char *)&s;
*c = 0x99; // 1001 1001
cout << s.a << endl << s.b << endl << s.c << endl;
return 0;
} {% endhighlight %} Output:?
结果:1 -1 -4