Включайте заголовочный файл в сгенерированный код
coder.cinclude(headerfile)
coder.cinclude(headerfile,'InAllSourceFiles',allfiles)
coder.cinclude(
включает заголовочный файл в сгенерированный исходный код C/C++.headerfile
)
MATLAB® Coder™ генерирует включать оператор в исходных файлах C/C++, которые сгенерированы из кода MATLAB, который содержит вызов coder.cinclude
.
В модели Simulink®, когда вызов coder.cinclude
появляется в блоке MATLAB function, генератор кода помещает включать оператор в образцовый заголовочный файл.
coder.cinclude(
использует опцию headerfile
,'InAllSourceFiles',allfiles
)allfiles
, чтобы определить, включать ли заголовочный файл почти во все исходные файлы C/C++.
Если allfiles
является true
, MATLAB Coder генерирует включать оператор почти во всех исходных файлах C/C++, за исключением некоторых служебных файлов. Это поведение является поведением coder.cinclude
от R2016a и более ранних релизов. Присутствие включать оператора в этих дополнительных файлах может увеличить время компиляции и сделать сгенерированный код менее читаемым. Используйте эту опцию, только если ваш код зависит от устаревшего поведения. Если 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, применяют эти лучшые методы:
Поместите вызов coder.cinclude
максимально близко вызова coder.ceval
, который требует заголовочного файла.
Не устанавливайте allfiles
на true
.
Для блока MATLAB function генератор кода генерирует включать оператор в образцовом заголовочном файле.
В R2016a и более ранних релизах, для любого вызова coder.cinclude
, MATLAB Coder включал заголовочный файл в, почти все сгенерировали исходные файлы C/C++, за исключением некоторых служебных файлов. Если у вас есть код, который зависит от этого устаревшего поведения, можно сохранить устаревшее поведение при помощи этого синтаксиса:
coder.cinclude(headerfile,'InAllSourceFiles',true)