coder.inline

包:编码器

生成的代码中的控件内联

语法

coder.inline(总是)
coder.inline(“不”)
coder.inline(“违约”)

描述

coder.inline(总是)部队内联生成的代码中当前函数的。把coder.inline指令在其应用的函数内部。代码生成器不内联入口点函数,内联函数进入parfor循环,或内联函数调用parfor循环。

coder.inline(“不”)防止在生成的代码中内联当前函数。当你想简化MATLAB之间的映射时,防止内联®源代码和生成的代码。属性可以禁用命令行上所有函数的内联- o禁用:内联选择的codegen命令。

coder.inline(“违约”)使用内部启发式来确定是否内联当前函数。通常,启发式产生高度优化的代码。使用coder.inline只有在您需要对这些优化进行微调的时候。

例子

防止内联函数

在这个例子中,函数喷火在生成的代码中没有内联:

函数y = foo(x) code .inline(“永远”);y = x;结束

使用编码器。内联控制流语句

您可以使用coder.inline在控制流代码。如果软件发现有矛盾coder.inline生成的代码使用默认的内联启发式并发出警告。

假设您想为内存有限的系统使用的除法函数生成代码。为了优化生成的代码中的内存使用,inline_division函数手动控制内联,基于执行标量除法还是向量除法:

函数y = inline_divide(被除数,除数)%对于标量除法,内联产生更小的代码%,而不是函数调用本身。如果isscalar(被除数)&& isscalar(除数)“总是”);其他的%向量分割产生一个for循环。%禁止内联以减少代码大小。coder.inline (“永远”);结束如果任何(除数== 0)误差不能除以0);结束y =被除数/除数;

更多关于

全部折叠

内联

用函数的内容(主体)替换函数调用的技术。内联消除了函数调用的开销,但是会产生更大的C/ c++代码。内联可以为生成的C/ c++代码的进一步优化创造机会。

另请参阅

介绍了R2011a