Вызовите внешнюю функцию 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(___)
coder.ceval(
выполняет внешнюю функцию C/C++, заданную 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® для массивов.
coder.ceval(
выполняет '-global'
,cfun_name
)cfun_name
и указывает, что cfun_name
использует одну или несколько глобальных переменных MATLAB. Генератор кода может затем произвести код, который сопоставим с этим использованием глобальной переменной.
coder.ceval(
выполняет '-global'
,cfun_name
,cfun_arguments
)cfun_name
с аргументами cfun_arguments
и указывает, что cfun_name
использует одну или несколько глобальных переменных 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™ свойство с определенными атрибутами, то вы не можете передать свойство в отношении внешней функции. Смотрите Передачу Ссылкой, Не Поддержанной для Некоторых Свойств.
Для генерации кода, прежде, чем вызвать coder.ceval
, необходимо задать тип, размер и тип данных сложности возвращаемых значений и выходных аргументов.
Чтобы применить coder.ceval
к функции, которая принимает или возвращает переменные, которые не существуют в коде MATLAB, таком как указатели, типы FILE
для файлового ввода-вывода и макросы C/C++, используют функцию coder.opaque
.
Используйте 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