编译器可以修改栈大小,这个值可以随意设置吗

 我来答
就烦条0o
2017-05-19 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46493
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
你说的那个默认1M的栈,应该指的是call stack(函数调用使用的栈)。这个栈用来存放函数调用时所传递的参数(并非所有参数都通过栈传递),栈指针,return address,寄存器的备份,还有每层函数的local variable。
1M大多数情况都是够用的,如果用完可能会发生非法访问等错误。可能会用完1M的情况:某个被调用的函数申请了一个很大的local variable,比如直接在栈上开个大数组之类的;还有就是递归调用,递归层数多了后很容易就用完1M。所以递归一般不要乱用。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式