c 函数调用时默认压栈顺序 调用完以后栈内存有谁来清理,如何改变默认规则 我来答 1个回答 #热议# 为什么有人显老,有人显年轻? 如牛似乎虎 2017-10-05 知道答主 回答量:9 采纳率:0% 帮助的人:5.5万 我也去答题访问个人页 关注 展开全部 调用约定默认是__cdecl,压栈顺序为从右到左如 void func(int a, int b, int c); 要调用这样一个函数未跳转时:0x00 | a | 偏移 + 0 第一个参数在栈顶0x04 | b | 偏移 + 40x08 | c | 偏移 + 80x0C | ... |调用完以后调用者负责清理堆栈,使堆栈平衡调用约定还有很多,可以根据需求使用 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询 其他类似问题 2015-06-24 x86上为什么C语言调用一个函数要先把参数压栈,之后才是返回地址 22 2014-12-23 C语言函数压栈顺序 2016-09-24 x86上为什么C语言调用一个函数要先把参数压栈,之后才是返回地址 1 2016-09-11 C语言函数参数压栈顺序与求值顺序的问题 1 2013-11-27 C语言中,函数调用是通过栈实现的,怎样理解这句话? 4 2017-10-02 C语言程序的运行顺序 2 2016-04-13 C++ 调用一个自定义函数,并将里面的内容输出到文件 4 2017-09-25 C++ 函数调用方法和书写格式. 9 为你推荐: