当前位置:首页 » 编程软件 » 调大编译器的栈区

调大编译器的栈区

发布时间: 2023-08-28 14:29:44

① 一个程序编译后,对于栈内存空间的大小,是如何定的呢

栈区内存,由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。访问顺序遵循先进后出原则。 栈stack:是程序启动时候由程序留出的工作内存区 比如程序的局部变量,函数调用等都是从栈中获取,

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

你说的那个默认1M的栈,应该指的是call stack(函数调用使用的栈)。这个栈用来存放函数调用时所传递的参数(并非所有参数都通过栈传递),栈指针,return address,寄存器的备份,还有每层函数的local variable。
1M大多数情况都是够用的,如果用完可能会发生非法访问等错误。可能会用完1M的情况:某个被调用的函数申请了一个很大的local variable,比如直接在栈上开个大数组之类的;还有就是递归调用,递归层数多了后很容易就用完1M。所以递归一般不要乱用。

③ 程序设计中,堆和栈比较重要。栈存取速度大于堆,而且编译器可以修改栈大小,这个值可以随意设置吗

学习电脑编程多年了,在程序设计方面也算有一番见解,希望这些经验能对题主有所帮助。

  • 现在堆栈通常默认为8M,对吧?事实上,如果你不滥用递归,或者alloca / vla,大多数时候,就足够了。即使它不超过内核限制,通常也不适合驱动大型的,或者它会影响并发进程的数量。并且过程启动时间也应该稍微减少。当然,如果是专用的服务器系统,问题就不严重了。

热点内容
编程正实数 发布:2024-11-20 17:22:12 浏览:241
电脑经常弹脚本错误 发布:2024-11-20 17:21:03 浏览:506
云服务器购买人怎么查 发布:2024-11-20 17:09:36 浏览:399
目前安卓手机用什么软件 发布:2024-11-20 17:08:56 浏览:908
12个符号组成密码多少个 发布:2024-11-20 17:08:56 浏览:296
灾难数据库 发布:2024-11-20 17:08:55 浏览:210
钓鱼发烧友脚本机价格 发布:2024-11-20 16:59:41 浏览:122
什么是网页服务器 发布:2024-11-20 16:59:38 浏览:63
访问黎姿 发布:2024-11-20 16:50:57 浏览:877
砸迷你电风扇解压视频 发布:2024-11-20 16:44:40 浏览:620