C语言调用函数分析
一、函数里返回栈区地址
1、函数里变量的赋值,存储在栈区;
2、返回该函数的地址;
【图片是错误的示例】
二、值得思考的返回值
五、堆在ROM还是RAM?(转载的)
程序开始启动
当系统上电后根据BOOT的引导配置选择启动方式,默认是Flash启动,这时系统开始把所有的代码段搬到RAM中去运行
CPU就从内存中(RAM)获取数据和指令,根据相关指令来控制系统运行
数据存放位置:除了特定IO操作存到EEPROM里面,其他变量的使用全在RAM区,其中就有堆和栈。堆是由用户手动分配malloc,在整个程序运行期间都有效除非手动释放free。而栈在一个函数体内存在,例如main方法由系统自动创建,如果出现递归创建则很容易导致栈溢出,当系统执行完该函数功能后,栈空间数据也由系统自动销毁。