函数运行时在内存中是什么样子?
void func(int a) { if (a > 100000000) return; int arr[100] = {0}; func(a + 1);}从进程、线程到函数调用

函数执行的活动轨迹:栈








A Box
控制转移
我从哪里来 (返回)
要到去哪里 (跳转)
函数A对于的机器指令执行到了哪里 (我从哪里来,返回)
函数B第一条机器指令所在的地址 (要到哪里去,跳转)

call 0x400540


传递参数与获取返回值

局部变量


Big Picture

void func(int a) { if (a > 100000000) return; int arr[100] = {0}; func(a + 1);}
void main(){ func(0);}不要创建过大的局部变量
函数栈帧,也就是调用层次不能太多
总结
赞 (0)
