coder.cinclude
在生成的代码中包括头文件
说明
coder.cinclude( 在生成的 C/C++ 源代码中包含头文件。headerfile)
MATLAB® Coder™ 在从包含 coder.cinclude 调用的 MATLAB 代码生成的 C/C++ 源文件中生成 include 语句。
在 Simulink® 模型中,当 MATLAB Function 模块中出现 coder.cinclude 调用时,代码生成器会将 include 语句放在模型头文件中。
注意
在大多数情况下,将 coder.ceval (MATLAB Coder) 与 "-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 中推出
另请参阅
coder.ceval | coder.target | coder.reservedName (MATLAB Coder)
主题
- 模型配置参数:代码生成自定义代码 (Simulink Coder)
