经反汇编经验证确实如此:局部变量用用{r4-r12,r14}来保存,放不下的在堆栈保存,{r0-r3}用来传递参数,多于4个参数也保存在堆栈,完全符合编译器手册规则。有图有真相
调用函数时堆栈操作
图上事例也说明具体哪个局部变量保存到堆栈也是编译器随机确定的而不是像参数传递一样有固定的顺序,如同之前碰到一个问题,编译器对静态数组的的初始化不会从从左到右,而是随机初始化(用户程序控制初始化除外)
本文分享自 作者个人站点/博客 前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!