C/C++教程

89、C++中将临时变量作为返回值时的处理过程

本文主要是介绍89、C++中将临时变量作为返回值时的处理过程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

首先需要明白一件事情,临时变量,在函数调用过程中是被压到程序进程的栈中的,当函数退出时,临 时变量出栈,即临时变量已经被销毁,临时变量占用的内存空间没有被清空,但是可以被分配给其他变 量,所以有可能在函数退出时,该内存已经被修改了,对于临时变量来说已经是没有意义的值了

C语言里规定:16bit程序中,返回值保存在ax寄存器中,32bit程序中,返回值保持在eax寄存器中,如 果是64bit返回值,edx寄存器保存高32bit,eax寄存器保存低32bit

由此可见,函数调用结束后,返回值被临时存储到寄存器中,并没有放到堆或栈中,也就是说与内存没有关系了。当退出函数的时候,临时变量可能被销毁,但是返回值却被放到寄存器中与临时变量的生命 周期没有关系

如果我们需要返回值,一般使用赋值语句就可以了

这篇关于89、C++中将临时变量作为返回值时的处理过程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!