
AI
而对于clang和msvc,会进行显式的空间分配。若传入的实参为变量,gcc会分配空间,不过分配的是局部变量空间,见下图第14行。但是,在call的时候会再次压入rip。进入Fun函数后,rbp - 4就不再是mAIn函数里的rbp - 4了,因为Fun函数开辟了新的空间,没有复用mAIn函数里x、y的空间。所以形参空间没有被分配就直接使用了,不过从mAIn函数来看,局部变量是有分配空间的。
但是,还有个但是。就下面这个例子,谁能给我讲讲,为啥两个参数跑到-20和-24的位置去了?这样的对齐好像不对呀。要是先安排局部变量再安排形参,不是应该从-16开始吗?
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号