《深入理解计算机系统》(原书第三版)家庭作业第三章(3.68)解答

A和B是通过#define 定义的常数,求A和B的值

《深入理解计算机系统》(原书第三版)家庭作业第三章(3.68)解答





从setVal的C代码和汇编代码对比可知:t 在str2 的偏移量为8 ,  u在str2 的偏移量为32 ,  y 在 str1的偏移量为 184 

结构体str2 和 str1 类型的最长单位是long ,因此它们都是 8位对齐。

有下列的结构图和分析:

《深入理解计算机系统》(原书第三版)家庭作业第三章(3.68)解答

《深入理解计算机系统》(原书第三版)家庭作业第三章(3.68)解答

最后得到唯一解: A=9,  B=5