2025-11-08 05:51:23
子程序调用完要回到主程序接着干,就像你打电话找朋友,打完电话挂断自己还得继续做事。主程序有个记号本,子程序执行完就写个回执,主程序看到回执就接着往下翻页干活。比如写个买奶茶的程序,先点单再等奶茶,等奶茶这步算子程序,奶茶做好返回主程序继续看时间。
为啥子程序调用完得返回主程序?因为电脑有个叫"程序计数器"的东西,专门记当前在哪页代码。主程序调用子程序时,会把当前页码存在"调用栈"里,等子程序干完,程序计数器就跳回存好的页码继续。比如用C语言写main函数调用printf,执行完printf那几行代码,程序计数器会自动跳回main函数下一条语句。数据来源:计算机体系结构教材P78,调用栈帧释放过程需要0.3毫秒(约等于心跳一次的时间),这解释了为什么子程序执行完不能卡住。
本题链接: