递归函数的代码生成
为递归MATLAB生成代码®功能,代码生成器使用编译时递归或运行时递归。你可以影响代码生成器使用是否通过修改您的MATLAB代码编译时和运行时递归。看到强制代码生成器使用运行时递归。
当你使用递归函数在MATLAB用于代码生成的代码,您必须遵守一定的限制。看到递归函数限制代码生成。
编译时递归
编译时递归,代码生成器创建多个版本的一个递归函数生成的代码。每个版本的输入值或尺寸定制版本。这些被称为版本功能专门化。你可以看到如果编译时代码生成器使用递归的代码生成报告。这是一个编译时报告中递归的例子。
运行时递归
与运行时递归代码生成器生成的代码生成一个递归函数。你可以看到如果代码生成器使用递归运行时通过查看代码生成报告。这是一个运行时报告中递归的例子。
不允许递归
在代码加速度配置对象,设置的值CompileTimeRecursionLimit
配置参数为0。
禁用运行时递归
一些编码标准,如MISRA™,不允许递归。生成代码的可能性增加,符合MISRA C™,禁用运行时递归。
在一个代码加速度配置对象,集EnableRuntimeRecursion
来假
。
如果您的代码需要运行时递归和递归运行时被禁用,你必须重写代码,以便它使用编译时递归或不使用递归。
递归函数限制代码生成
当你使用递归在MATLAB代码是用于代码生成,遵循这些限制:
指定运行时的所有输出递归函数中的第一个递归调用函数之前。
分配单元阵列输出的所有元素运行时递归函数。
运行时递归函数的输入和输出不能类。
的
StackUsageMax
运行时递归代码加速度配置参数被忽略。