Я хочу иметь функцию Scilab, которая может изменять свои входные переменные, например, в C
я мог бы иметь
void double(int* x){
*x *= 2;
return;
}
В Scilab'е есть intppty
, funptr
, addinter
, istk
, sadr
и stk
, которые кажутся актуальными, однако я не могу найти никакого рабочего примера. Scilab действительно имеет тип pointer
(т.е. 128
). Буду признателен, если вы поможете мне разобраться в этом.
P.S.1. Я также отразил этот вопрос здесь, на Reddit .
PS2. Scilab также имеет intersci
, SWIG
, fort
, external
, call
, API_Scilab
/ gateway
, которые могут взаимодействовать C
/ C++
функций или Fortran
подпрограмм. К сожалению, intersci
устарел, а SWIG
, похоже, только для Linux с ограниченной C++
совместимостью.
PS3. scilab имеет функцию перегрузки , которая может выполнять функции с функциями, определенными deff
и комбинацией синтаксиса %
, <...>
, _...
.
PS4. Способ API_Scilab
/ gateway
работает, в основном вы разрабатываете код, используя функции, предусмотренные для файла заголовка api_scilab.h
, компилируете его с ilib_build
, пишите loader*.sce
скрипт, а затем загрузить его с exec
.
P.S.5. предположительно, можно установить mingw
компилятор с
atomsInstall('mingw'); atomsLoad('mingw');
Однако я не могу заставить его работать, как я объяснил здесь .