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

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;
};

Похожие темы