调用堆栈帧限制是否取决于您的 ram 或语言?

我正在撰写有关调用堆栈概念的文章,我想谈谈不同语言中调用堆栈的局限性。


我知道有一些方法可以查看调用堆栈上可以有多少帧,例如:


Python


import sys

print(sys.getrecursionlimit())

Javascript


 let count = 0;

 const counter() {

     count++;

     counter();

 }

 

counter();

我也想知道 C 的情况。但我的主要问题是这个数字是否是由语言设置的数字,或者该数字是否完全取决于设备有多少 ram。


千巷猫影
浏览 77回答 1
1回答

宝慕林4294392

这取决于很多因素,例如操作系统、设备和 RAM 量。在许多编译语言中,操作系统允许您增加堆栈,直到操作系统决定不再提供给您为止。在许多嵌入式设备中,黑客故意将堆栈扩展到超出预期范围,以便侵入设备。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript