怎么理解函数调用的保存现场 调用失败的返回 生存期?最好能举例说明

来源:百度知道 编辑:UC知道 时间:2024/05/19 17:32:51
呵呵 是的
我见过2个例题都涉及这3个问题 但是例题找不到了
如能解答 不胜感激

C/C++是高级语言。这些知识点无法从C/C++角度来理解,所以不用浪费时间学这些知识点,一知半解一点用都没有。

如果要理解,建议学1、2个月的汇编语言编程,可以从汇编语言的角度来理解就比较清晰了。或者将VC做成的程序(简单一点就可以了,譬如一个printf的控制台程序)进行反汇编,然后在调试窗口中查看汇编代码窗口中的汇编代码,就能明白了。

强调一下,不学汇编,就别从C/C++语言角度来理解,没意义。

CPU的指令多数是需要寄存器的,当调用子程序的时候,肯定也要用到寄存器,如果他破坏了里面的值,那么函数返回的时候就不能正确的执行了。生存期可以理解为他的有效作用期,比如函数的局部变量是才堆栈区的当调用函数的时候有效,函数返回,堆栈释放,这些地址就变为非法地址了,虽然里面的值不变,但是已经没有合法的地位了。

是几个知识点吧