Ограничения, использующие структуры

MATLAB возвращает указатели на структуры

MATLAB® возвращает указатели на структуры. Возврат значений не поддерживается.

Структура не может содержать указатели на другие структуры

Вложенные структуры или структуры, содержащие указатель на структуру, не поддерживаются. Однако MATLAB может получить доступ к массиву структур, созданных во внешней библиотеке.

Требования к аргументам структуры MATLAB

При передаче структуры MATLAB во внешнюю библиотечную функцию имена полей должны удовлетворять следующим требованиям.

  • Каждое имя поля MATLAB должно совпадать с именем поля в определении структуры библиотеки.

  • Структуры MATLAB не могут содержать поля, не входящие в определение структуры библиотеки.

  • Если структура MATLAB содержит меньше полей, чем определено в структуре библиотеки, MATLAB устанавливает неопределенные поля в нуль.

  • Имена полей зависят от регистра. Например, предположим, что библиотека mylib содержит функцию myfunc со следующим определением структуры.

    struct S {
        double len;
    };

    Имя поля len. Если вы передаете структуру, в myfunc с именем поля LenMATLAB отображает ошибку.

    S.Len = 100;
    calllib('mylib','myfunc',S)

Требования к C- struct Имена полей

Когда MATLAB загружает struct C определение, имена полей в MATLAB не зависят от регистра. Для примера при загрузке библиотеки, содержащей следующее определение, MATLAB не создает двух полей.

struct S {
    double Num;
    double num;
};

Похожие темы