Вызовите внешнюю функцию C/C++
coder.ceval(cfun_name)
coder.ceval(cfun_name,cfun_arguments)
coder.ceval('-global',cfun_name)
coder.ceval('-global',cfun_name,cfun_arguments)
cfun_return = coder.ceval(___)
выполняет внешнюю функцию C/C++, заданную coder.ceval(cfun_name)
cfun_name
. Задайте cfun_name
во внешнем исходном файле C/C++ или библиотеке. Обеспечьте внешний источник, библиотеку и заголовочные файлы к генератору кода.
выполняет coder.ceval(cfun_name,cfun_arguments)
cfun_name
с аргументами cfun_arguments
. cfun_arguments
является списком, разделенным запятыми входных параметров в порядке, которого требует cfun_name
.
По умолчанию coder.ceval
передает аргументы значением к функции C/C++ каждый раз, когда поддержки C/C++ передающие аргументы значением. Чтобы привести аргументы передачи coder.ceval
ссылкой, используйте построения coder.ref
, coder.rref
и coder.wref
. Если C/C++ не поддерживает передающие аргументы значением, например, если аргумент является массивом, coder.ceval
передает аргументы ссылкой. Если вы не используете coder.ref
, coder.rref
или coder.wref
, копия аргумента, может казаться, в сгенерированном коде осуществляет семантику MATLAB® для массивов.
cfun_return = coder.ceval(___)
выполняет cfun_name
и возвращает единственное скалярное значение, cfun_return
, соответствуя значению, которое функция C/C++ возвращает в операторе return
. Чтобы быть сопоставимым с C/C++, coder.ceval
может возвратить только скалярное значение. Это не может возвратить массив. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах.
Вы не можете использовать coder.ceval
на функциях, которые вы объявляете внешний с coder.extrinsic
.
Когда компилятор LCC создает библиотеку, он добавляет начальный символ подчеркивания к именам библиотечной функции. Если бы компилятор для библиотеки был LCC, и ваш компилятор генерации кода не является LCC, необходимо добавить начальный символ подчеркивания к имени функции, например, coder.ceval('_mylibfun')
. Если компилятор для библиотеки не был LCC, вы не можете использовать LCC, чтобы сгенерировать код из кода MATLAB, который вызывает функции от той библиотеки. Те имена библиотечной функции не имеют начального символа подчеркивания, которого требует компилятор LCC.
Если свойство имеет получить метод, метод установки или блоки проверки допустимости, или является Системой object™ свойство с определенными атрибутами, то вы не можете передать свойство в отношении внешней функции. Смотрите Передачу Ссылкой, Не Поддержанной для Some Properties.
Для генерации кода, прежде, чем вызвать coder.ceval
, необходимо задать тип, размер и тип данных сложности возвращаемых значений и выходных аргументов.
Используйте coder.ceval
только в MATLAB для генерации кода. coder.ceval
генерирует ошибку в нескомпилированном коде MATLAB. Чтобы определить, выполняется ли функция MATLAB в MATLAB, используйте coder.target
. Если функция выполняется в MATLAB, вызовите версию MATLAB функции C/C++.
coder.ExternalDependency
| coder.extrinsic
| coder.opaque
| coder.ref
| coder.rref
| coder.target
| coder.updateBuildInfo
| coder.wref