文档

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_除法(被除数,除数)对于标量除法,内联生成更小的代码%大于函数调用本身。如果Isscalar(被除数)&& Isscalar(除数)码。inline(“总是”);其他的向量除法产生一个for循环。禁止内联以减少代码大小。coder.inline (“永远”);结束如果任何(除数== 0)错误(“不能被0除”);结束Y =被除数/除数;

更多关于

全部折叠

内联

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

另请参阅

在R2011a中引入

这个话题有用吗?