c++ - x86 和 x64 堆栈帧

标签 c++ x86 64-bit

编译器在 x86 和 x64 架构中在堆栈上分配变量时有什么区别?假设我有一个函数

foo(){
    int i = 5;
    i += 4;
}

这两种架构在堆栈上的分配方式有何不同?

最佳答案

对于 Microsoft 的 x64 ABI,请查看 http://msdn.microsoft.com/en-us/library/7kcdt6fy.aspx在“堆栈使用”下。它与他们的 x86 ABI 有很大不同。

其他 x64 ABI(Linux、OS X 等)可能与 Microsoft 的类似但略有不同。 GCC 的文档可能是开始寻找这些内容的好地方。

关于c++ - x86 和 x64 堆栈帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1798704/

相关文章:

c++ - 在 OSX 上刷写 Asuro Robot (Arexx)

c++ - 日历分配

node.js - 是否可以在 32 位环境上运行 Edge.js?

c++ - 逆向工程的汇编语言

c++ - unsigned short 和 signed short 比较奇怪的行为

c - 64 位辅助函数 Handle64toHandle()

linux - 如何在不触及 CFLAGS 环境变量的情况下在 64 位 linux 机器上编译 32 位二进制文​​件

c++ - 计算特征值错误

c++ - 我无法理解为什么在此 for 循环中输出为 10

c++ - 访问连续 L1 高速缓存的代码比访问 3x 非连续 L1 内存的代码慢