Включите заголовочный файл в сгенерированный код
coder.cinclude(
включает заголовочный файл в сгенерированный исходный код C/C + +.headerfile
)
MATLAB® Coder™ генерирует оператор включения в исходные файлы C/C + +, которые генерируются из кода MATLAB, который содержит coder.cinclude
вызов.
В Simulink® модель, когда coder.cinclude
вызов появляется в блоке MATLAB Function, генератор кода помещает оператор include в заголовочный файл модели.
Примечание
Поместите a coder.cinclude
вызов как можно ближе к coder.ceval
вызов, который требует файла заголовка.
coder.cinclude(
использует headerfile
,'InAllSourceFiles',allfiles
)allfiles
опция, чтобы определить, включать ли заголовочный файл почти во все исходные файлы C/C + +.
Если allfiles
является true
MATLAB Coder генерирует оператор include почти во всех исходных файлах C/C + +, кроме некоторых файлов утилиты. Это поведение является coder.cinclude
поведение из R2016a и более ранних релизов. Наличие оператора include в этих дополнительных файлах может увеличить время компиляции и сделать сгенерированный код менее читаемым. Используйте эту опцию, только если ваш код зависит от унаследованного поведения. Если allfiles
является false
, поведение совпадает с поведением coder.cinclude(headerfile)
.
В блоке MATLAB Function, coder.cinclude(headerfile,'InAllSourceFiles', allfiles)
то же, что и coder.cinclude(headerfile)
.
Не звонить coder.cinclude
внутри условных конструкций во время выполнения, таких как if
операторы, switch
операторы, while
-циклы и for
-циклы. Вы можете позвонить coder.cinclude
внутри условных операторов во время компиляции, таких как coder.target
. Для примера:
... if ~coder.target('MATLAB') coder.cinclude('foo.h'); coder.ceval('foo'); end ...
До coder.ceval
вызов, вызов coder.cinclude
включить заголовочный файл, требуемый внешней функцией, которая coder.ceval
вызовы.
Посторонние операторы включения в сгенерированный код C/C + + могут увеличить время компиляции и уменьшить читаемость кода. Чтобы избежать посторонних операторов включения в код, сгенерированный MATLAB Coder, следуйте этим лучшим практикам:
Поместите a coder.cinclude
вызов как можно ближе к coder.ceval
вызов, который требует файла заголовка.
Не устанавливать allfiles
на true
.
Для блока MATLAB Function генератор кода генерирует оператор include в заголовочном файле модели.
В R2016a и более ранних релизах, для любых coder.cinclude
вызов, MATLAB Coder включил заголовочный файл почти во все сгенерированные исходные файлы C/C + +, кроме некоторых служебных файлов. Если у вас есть код, который зависит от этого унаследованного поведения, можно сохранить унаследованное поведение с помощью этого синтаксиса:
coder.cinclude(headerfile,'InAllSourceFiles',true)
codegen
| coder.ceval
| coder.config
| coder.reservedName
| coder.target