【发布时间】:2011-12-02 21:13:06
【问题描述】:
int main(){
int i;
}
调用函数后,我在 gdb 中执行了 $ebp-$esp,它给了我 4。但是旧的 ebp 呢?我可以认为这个函数在堆栈上需要 8 个字节吗? int 为 4 个字节,旧的ebp 为 4 个字节。
注意-我使用-mpreferred-stack-boundary=2 -march=i386构建它
【问题讨论】:
-
在反汇编器中查看。
-
如果没有完整的编译器详细信息,就无法回答这个问题。
-
一个不错的问题,但你为什么想知道?
-
@DanFego 你为什么要知道他为什么要知道?
-
@SethCarnegie:因为通常当人们提出的问题最终得到诸如“它取决于编译器”之类的答案时,他们一开始就试图解决错误的问题。 :)
标签: c