我只能想象 1)参数; 2) 局部变量;
还有什么?
1) 函数返回地址? 2) 函数名?
最佳答案
它确实取决于平台和架构,但通常:
- 函数返回地址
- 调用者的 CPU 寄存器的保存值 - 最重要的是,调用者的堆栈帧指针值
- 使用 alloca() 分配的变量。
- 有时 - 异常处理的额外内容,这非常依赖于平台。
- 有时 - 保护值以检测堆栈破坏
据我所知,函数名称永远不会在堆栈中,除非您的代码将它放在那里。
关于c++ - 调用函数时栈上有什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5589619/