主要内容

递归函数的代码生成

为递归MATLAB生成代码®功能,代码生成器使用编译时递归运行时递归。你可以影响代码生成器使用是否通过修改您的MATLAB代码编译时和运行时递归。看到强制代码生成器使用运行时递归

你可以不允许递归禁用运行时递归通过修改配置参数。

当你使用递归函数在MATLAB用于代码生成的代码,您必须遵守一定的限制。看到递归函数限制代码生成

编译时递归

编译时递归,代码生成器创建多个版本的一个递归函数生成的代码。每个版本的输入值或尺寸定制版本。这些被称为版本功能专门化你可以看到如果编译时代码生成器使用递归的代码生成报告。这是一个编译时报告中递归的例子。

这张图片显示了在MATLAB编译时递归函数的结果报告

运行时递归

与运行时递归代码生成器生成的代码生成一个递归函数。你可以看到如果代码生成器使用递归运行时通过查看代码生成报告。这是一个运行时报告中递归的例子。

这张图片显示了一个示例的一个运行时在报告中递归

不允许递归

在代码加速度配置对象,设置的值CompileTimeRecursionLimit配置参数为0。

禁用运行时递归

一些编码标准,如MISRA™,不允许递归。生成代码的可能性增加,符合MISRA C™,禁用运行时递归。

在一个代码加速度配置对象,集EnableRuntimeRecursion

如果您的代码需要运行时递归和递归运行时被禁用,你必须重写代码,以便它使用编译时递归或不使用递归。

递归函数限制代码生成

当你使用递归在MATLAB代码是用于代码生成,遵循这些限制:

  • 指定运行时的所有输出递归函数中的第一个递归调用函数之前。

  • 分配单元阵列输出的所有元素运行时递归函数。

  • 运行时递归函数的输入和输出不能类。

  • StackUsageMax运行时递归代码加速度配置参数被忽略。

相关的话题