Arduino是否支持尾部呼叫消除?
发布时间:2020-12-16 07:02:06 所属栏目:百科 来源:网络整理
导读:我想知道标准的Arduino环境是否支持尾部消除… 有人知道吗? 解决方法 在Arduino IDE中,默认情况下确实支持并启用了尾部调用消除功能.对于微控制器世界而言,这是非常标准的,其中牺牲了适当的堆栈帧等调试辅助工具以提高存储器效率. 这是一个测试: const int
我想知道标准的Arduino环境是否支持尾部消除…
有人知道吗? 解决方法
在Arduino IDE中,默认情况下确实支持并启用了尾部调用消除功能.对于微控制器世界而言,这是非常标准的,其中牺牲了适当的堆栈帧等调试辅助工具以提高存储器效率.
这是一个测试: const int RAM_SIZE_IN_BYTES = 2048; void f(int i) { Serial.println(i); if(i == 0) return; else f(i-1); } void setup() { Serial.begin(9600); f(RAM_SIZE_IN_BYTES); } void loop() { } 此代码将2048到0的数字打印到控制台,这需要比可用RAM字节更多的递归调用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |