Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调用堆栈帧限制是否取决于ram或语言?_Javascript_Python_C_Callstack - Fatal编程技术网

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

Javascript 调用堆栈帧限制是否取决于ram或语言?,javascript,python,c,callstack,Javascript,Python,C,Callstack,我正在写一篇关于调用堆栈概念的文章,我想谈谈不同语言中调用堆栈的局限性 我知道有很多方法可以查看调用堆栈上可以有多少帧,例如: Python import sys print(sys.getrecursionlimit()) Javascript let count = 0; const counter() { count++; counter(); } counter(); 我也想知道C也是一样。但我的主要问题是,这个数字是由语言设置的,还是完全取决于设备有多

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

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

Python

import sys
print(sys.getrecursionlimit())
Javascript

 let count = 0;
 const counter() {
     count++;
     counter();
 }
 
counter();

我也想知道C也是一样。但我的主要问题是,这个数字是由语言设置的,还是完全取决于设备有多少ram。

它取决于很多事情,比如操作系统、设备和ram的数量。在许多编译语言中,操作系统允许您增加堆栈,直到操作系统决定不再为您提供。在许多嵌入式设备中,黑客故意将堆栈扩展到超出预期的范围,以便侵入设备。

这通常不是编程语言的一个方面。你是说语言实现吗?我认为这是一个需要做出的决定,所以它必须由编写实现的人来做出,但也会受到机器上可用资源的限制。