前一段时间去一家小公司面试,面试官居然一个毛头小子,估计刚刚毕业三四年。而我已经而立之年,工作快8年了。
他给出这样一道题目:
//==============================
32位系统下,有如下定义:
typedef struct _AAA
{
char b;
double a;
char c;
}AAA;
问:sizeof(AAA)的值为多少。
//==============================
题外话:
这种题目,至少八成的软件公司面试题里都会出现,对此感到很奇怪。我知道他们是想考察对“内存对齐”的理解。但是做一般的程序根本不必理会这些东西;有多少程序需要自己去考虑内存对齐问题呢?真的这样去做只怕弄巧成拙!因此这种题目实际意义不大。
另外,通过#pragma pack(n) 这样的命令是可以改变对齐情况的。受此影响sizeof(AAA)的值也会发生改变。在毫无说明的情况下,直接问sizeof(AAA)的值为多少,岂不荒谬?因此这种题目没有上下文的情况下,是无法回答的。
话说回来。
我想应该是默认情况下的,于是回答是16.
那个
阅读(1274) | 评论(1) | 转发(0) |