我正在学习CMU 15-213,它讨论了计算机组织和计算机组织。结构。目前我经历了关于数组讨论的部分。 以下示例显示了固定大小数组和可变大小数组之间的区别:
第一个例子,固定大小的数组,列号C = 16,元素K的大小= 4,所以C * k = 64,并且代码使用salq得到64 * i;第二个例子,可变大小的数组,列号C是一个变量,所以我们在编译时才知道它;因此我们必须使用imulq而不是salq。在这种情况下,可变大小的阵列更昂贵。但是,我认为这是由于C k = 64,如果我们将C设置为15或17,然后C k = 60或68,那么我们可能不会只使用一个salq操作。所以一般来说,如果固定大小的数组的C * k不等于2 ^ n,那么设置数组的两种方法同样计算成本很高?