我怎么知道我最后的指示
How i know the last instruction i were
int testFun(int A)
{
return A+1;
}
int main()
{
int x=0;
int y= testFun(x)
cout<<y;
}
众所周知,堆栈保存局部变量,这意味着当我在主函数中时,堆栈有变量(x 和 y(,当我调用函数 (testFun( 时,堆栈有变量 (A( 当我从(testFun(返回时,堆栈弹出最后一帧 但是这里的问题是,当我从(testFun(返回时,它如何在调用(testFun(之前知道它在主函数中的最后一个位置
当我从(testFun(返回时,它如何在调用(testFun(之前知道它在主函数中的最后一个位置
编译器分析代码并生成在 CPU 上运行的计算机指令。函数调用生成CALL
指令。当函数退出时,RET
指令用于返回给调用方。
CALL
指令将跟随CALL
本身的指令的地址推送到调用堆栈上,然后跳转到指定函数的起始地址。
RET
指令从调用堆栈中弹出该地址,然后跳转到指定的地址。
相关文章:
- 如何指示 cmake 的 gcc 版本?
- 将文件内容存储到unordered_map仅存储最后的项目和值
- C++-STL-矢量-为什么矢量中没有指示relocation_count的工具
- 我怎么知道我最后的指示
- 我似乎正在放弃我最后的输入
- 打印矢量时最后的'%'是什么?
- 每个最后的组合都是双基本C
- 在构造函数的成员初始值设定项列表中使用带有指示符的初始值设定项列表以初始化匿名联合类型时出现编译错误
- 范围基于循环,使用指示字符串的指针
- 持续的指示持续的指针被称为
- 在 Getline C++ 上复制最后的数据
- 大小编译指示打包的位域结构数组
- 为什么我最后的cout中的第一个字母会被切断
- 如何在没有任何指示终止的输入的情况下摆脱这种"loop"?
- 从向量中移除最后的元素,直到条件
- 指示方向的迷宫解算器
- giz++输出丢失*.ti.Final和*actual.ti.最后的文件
- 矢量旋转最后的内容到开始
- 最后的文件行读取会产生不同的结果
- 代码没有添加最后的默认值