1

这些天我在阅读一篇关于堆栈溢出的文档,发现一句话让我很困惑。

顺便说一下,压入堆栈的项目只能放在字边界,这意味着地址必须是字长的倍数。因此,如果程序包含一个仅使用一个字节的局部变量,那么仍然会使用一个完整的字来存储该变量!

这是否意味着存储在 32 位机器堆栈上的短 int(2 字节)局部变量将浪费 2 个字节,因为系统将分配一个完整的字来存储?

4

1 回答 1

4

是的,就是这个意思。这取决于系统实现和寻址实现,但字对齐很常见。

于 2012-10-22T23:27:16.510 回答