C++函数的返回值 和 虚拟内存

1) C++函数的返回值在内存中的传递过程

1、返回值<=4字节,通过一个寄存器返回;
2、返回值>4 且<=8字节,通过两个寄存器返回;
3、返回值>8 字节,主调函数通过生成临时变量然后被调用函数将返回值写进临时变量;

 func里的a存储在调用fun函数时开辟的栈空间里,这块栈只在调用func时对func可用,调用结束后返回的a,其实是暂存在寄存器里的(一般情况下是eax),而返回到main里时,main又会把返回的值拷贝到自己所有的栈空间里(在这里是以临时变量的形式)。所以不管是func还是main,任何非static、register变量和常量的存储都是在函数局部存储区里(也就是对当前调用函数可见的栈空间)。main也是一个函数。

2) 什么是虚拟内存,为什么要使用虚拟内存,虚拟内存可能比物理内存大吗

虚拟内存:是计算机系统中的一种技术,它扩展了计算机系统的内存地址空间,使得计算机可以处理比实际物理内存更大的数据。虚拟内存将硬盘的一部分空间作为临时存储区域,当物理内存不足时,操作系统会将暂时不用的内存数据暂存在硬盘上,让出物理内存给正在使用的程序,从而实现了虚拟内存的功能。

扩展可用内存:计算机的物理内存是有限的,而在运行复杂应用程序或大型数据库等工作负载时,物理内存可能不足以容纳所有需要的数据和代码。虚拟内存扩展了计算机的内存容量,使得计算机可以在不增加物理内存的情况下运行更多的程序和进程。

提高性能:虚拟内存可以通过释放物理内存来缩短响应时间,优化系统的内存使用效率。当物理内存不足时,虚拟内存会将占用物理内存较少的程序数据暂存到硬盘存储器[3]中,让出物理内存给更需要的程序,从而提高系统的运行效率。

保护系统稳定:虚拟内存分离了单个应用程序的内存地址空间,当程序发生内存泄漏或越界访问等问题时,可以保护其他正在运行的程序不受影响。同时,在多任务操作系统中,虚拟内存也可以隔离不同进程之间的内存,防止恶意程序对另一个程序的内存进行读写操作,从而保证整个系统的稳定性和安全性。

虚拟内存的容量可以比‌物理内存大。‌ 虚拟存储器的容量比实际物理内存空间大得多,这是因为虚拟内存利用了‌硬盘空间作为扩展当物理内存不足时,系统会将部分数据转移到虚拟内存中,以确保程序的正常运行。‌在实际设置中,虚拟内存的大小通常设置为物理内存的1.5至2倍。例如,如果物理内存为8GB,虚拟内存的大小可以设置为12GB至16GB。这样可以有效利用硬盘空间,同时保证系统的稳定运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值