coder.cinclude
在生成的代码中包括头文件
说明
coder.cinclude(
在生成的 C/C++ 源代码中包含头文件。headerfile
)
MATLAB® Coder™ 在从包含 coder.cinclude
调用的 MATLAB 代码生成的 C/C++ 源文件中生成 include 语句。
在 Simulink® 模型中,当 MATLAB Function 模块中出现 coder.cinclude
调用时,代码生成器会将 include 语句放在模型头文件中。
注意
在大多数情况下,将 coder.ceval
与 "-headerfile"
选项结合使用,而不是使用 coder.cinclude
。仅在使用 coder.ceval
调用在同一个头文件中定义的多个 C/C++ 函数时,才使用 coder.cinclude
。您必须在对应的 coder.ceval
调用之前调用 coder.cinclude
,并且必须在同一 MATLAB 函数中调用 coder.cinclude
和 coder.ceval
。
coder.cinclude(
使用 headerfile
,'InAllSourceFiles',allfiles
)allfiles
选项确定是否在几乎所有 C/C++ 源文件中包含头文件。
如果 allfiles
为 true
,则 MATLAB Coder 在几乎所有 C/C++ 源文件中生成 include 语句,但一些实用工具文件除外。此行为是 R2016a 及更早版本中的 coder.cinclude
行为。这些附加文件中如果存在 include 语句,会使编译时间增加并使生成的代码的可读性降低。仅当代码依赖于旧行为时,才使用此选项。如果 allfiles
为 false
,则行为与 coder.cinclude(headerfile)
的行为相同。
在 MATLAB Function 模块中,coder.cinclude(headerfile,'InAllSourceFiles', allfiles)
与 coder.cinclude(headerfile)
相同。
示例
输入参数
限制
不要在运行时条件构造(如
if
语句、switch
语句、while
循环和for
循环)中调用coder.cinclude
。您可以在编译时条件语句(如coder.target
)中调用coder.cinclude
。例如:... if ~coder.target('MATLAB') coder.cinclude('foo.h'); coder.ceval('foo'); end ...
提示
在
coder.ceval
调用之前,调用coder.cinclude
以包含coder.ceval
调用的外部函数所需的头文件。生成的 C/C++ 代码中的外部 include 语句会增加编译时间并降低代码可读性。为避免 MATLAB Coder 生成的代码中出现外部 include 语句,请遵循以下最佳做法:
尽可能靠近需要头文件的
coder.ceval
调用来放置coder.cinclude
调用。不要将
allfiles
设置为true
。
对于 MATLAB Function 模块,代码生成器在模型头文件中生成 include 语句。
在 R2016a 及更早版本中,对于任何
coder.cinclude
调用,MATLAB Coder 都会在几乎所有生成的 C/C++ 源文件中包含头文件,但一些实用工具文件除外。如果您的代码依赖于此旧有行为,可以使用以下语法保留旧行为:coder.cinclude(headerfile,'InAllSourceFiles',true)
扩展功能
版本历史记录
在 R2013a 中推出