加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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字节更多的递归调用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读