Включите заголовочный файл в сгенерированный код
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 является trueMATLAB 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