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

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

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

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

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

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

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

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

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

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

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

    struct S {
        double len;
    };

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

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

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

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

struct S {
    double Num;
    double num;
};

Похожие темы