标签: c memory stack stack-overflow
这些天我正在阅读一篇关于堆栈溢出的文档,发现一句话让我很困惑。
顺便说一下,在堆栈上推送的项目只能放在字边界, 意味着地址必须是字长的倍数。因此,如果该计划 包含仅使用一个字节的局部变量,然后使用完整的单词来存储 这个变量!
这是否意味着存储在32位机器堆栈上的短int(2字节)局部变量会浪费2个字节,因为系统会分配一个完整的字来存储?
答案 0 :(得分:4)
是的,这就是它的含义。它取决于系统实现和寻址实现,但它很常见的是字对齐。