函数的工作原理——划分RAM搞不懂啊???
1、看到《21天学会C++》P92的函数工作原理之划分RAM,感觉还是迷迷糊糊,不太明白,进一步查询???
2、程序启动时,操作系统(如DOS,Windows等)将依据编译器的需求设置各种内存区域。
对于一个C++程序员来说,经常需要关心的是全局名称空间、自由存储器、寄存器、代码空间和堆栈.
3、寄存器:CPU中的一个特殊存储区域,任意给定时刻指向下一行代码代码的寄存器组的寄存器被称为指令指针。指令指针的任务是跟踪接下来将执行哪一行代码。
4、代码空间:代码本身存放在代码空间中,每行代码都被转换为一系列的二进制形式的指令,然后存储在代码空间中。指令指针中存放了接下来要执行的指令的地址。
5、堆栈:用来存储程序中每个函数说需要的数据,堆栈是后入先出的,跟先入先出的队列形成鲜明对比。堆栈是函数调用时把被调用的函数所需参数压入栈中,以实现函数的调用。
堆栈的具体作用:
1,传递参数(为被调用函数提供参数)
2,保存局部变量
3,保存中间变量
4,在系统中用堆栈保存任务的状态(例如各个寄存器的值)
6、然后讲解的堆栈和函数调用这一块就搞不明白了??