Вызов внешней функции C/C + +
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.
coder.ceval( позволяет вызывать графический процессор CUDA ®'-gpudevicefcn',devicefun_name,devicefun_arguments)__device__ функции из ядер. '-gpudevicefcn' указывает на coder.ceval что целевая функция находится на устройстве GPU. devicefun_name является именем __device__ функции и devicefun_arguments представляет собой разделенный запятыми список входных аргументов в порядке, devicefun_name требует. Для этого параметра требуется продукт GPU Coder™.
coder.ceval( выполняет '-layout:rowMajor',cfun_name,cfun_arguments)cfun_name с аргументами cfun_arguments и передает данные, хранящиеся в макете основной строки. При вызове из функции, которая использует компоновку «основной столбец», генератор кода преобразует входные данные в компоновку «основной строка» и преобразует выходные данные обратно в компоновку «основной столбец». Для более короткого синтаксиса используйте coder.ceval('-row',...).
coder.ceval( выполняет '-layout:columnMajor',cfun_name,cfun_arguments)cfun_name с аргументами cfun_arguments и передает данные, хранящиеся в основной компоновке столбцов. При вызове из функции, которая использует макет основной строки, генератор кода преобразует входные данные в макет основной строки и преобразует выходные данные обратно в макет основной строки. Для более короткого синтаксиса используйте coder.ceval('-col',...).
coder.ceval( выполняет '-layout:any',cfun_name,cfun_arguments)cfun_name с аргументами cfun_arguments и передает данные с текущим макетом массива, даже если макеты массива не совпадают. Генератор кода не преобразует структуру массива входных или выходных данных.
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.
Если свойство имеет метод get, метод set или средства проверки или является свойством System 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 + +.
codegen | coder.columnMajor | coder.ExternalDependency | coder.extrinsic | coder.opaque | coder.ref | coder.reservedName | coder.rowMajor | coder.rref | coder.target | coder.updateBuildInfo | coder.wref