coder.inline
控制生成的代码中特定函数的内联
说明
coder.inline('always')
在生成的代码中对当前函数进行内联。使用 coder.inline('always')
优化指令将函数调用替换为被调函数的内容(函数体)。内联消除了函数调用的开销,并为进一步优化生成的 C/C++ 代码提供了机会。但是,内联可能生成更庞大、更复杂的 C/C++ 代码。
coder.inline('always')
指令不支持以下项的内联:
入口函数。
递归函数。
包含
parfor
循环的函数。从
parfor
循环中调用的函数。
coder.inline('never')
可阻止在生成的代码中内联当前函数。当您要简化 MATLAB® 源代码和生成代码之间的映射时,请使用 coder.inline('never')
指令。
coder.inline('never')
优化指令不会阻止以下项的内联:
空函数。
返回常量输出的函数。
若要即使在这些情况下也防止内联,请在 MATLAB 代码中的函数调用点对输入使用 coder.ignoreConst
(MATLAB Coder) 函数。有关详细信息,请参阅Resolve Issue: coder.inline("never") and coder.nonInlineCall Do Not Prevent Function Inlining (MATLAB Coder)。
coder.inline('default')
指示代码生成器使用内部启发式方法来确定是否内联当前函数。通常,这些启发式方法会产生高度优化的代码。仅当需要微调这些优化时,才在 MATLAB 函数中显式使用 coder.inline
。有关其他规范,请参阅提示 (MATLAB Coder)。
示例
提示
如果使用
codegen
(MATLAB Coder) 或fiaccel
命令,则可以使用-O disable:inline
选项对所有函数禁用内联。如果您使用
codegen
命令或 MATLAB Coder™ 生成 C/C++ 代码,则对于为您编写的函数生成的代码和为 MathWorks® 函数生成的代码,您可能有不同的速度和可读性要求。某些其他全局设置使您能够分别控制生成的代码库的这两个部分以及它们之间边界处的内联行为。请参阅Control Inlining to Fine-Tune Performance and Readability of Generated Code (MATLAB Coder)。
扩展功能
版本历史记录
在 R2011a 中推出