Для создания кода, чтобы настроить перечисление, в разделе статических методов определения класса включите пользовательские версии методов, перечисленных в этой таблице.
| Метод | Описание | Возвращенное или указанное значение по умолчанию | Когда использовать |
|---|---|---|---|
| Возвращает перечисляемое значение по умолчанию. | Первое значение в определении класса перечисления. | Для значения по умолчанию, отличного от первого значения перечисления, укажите |
| Указывает файл, определяющий внешний перечисляемый тип. |
| Для использования внешнего перечисляемого типа укажите |
| Указывает, становится ли имя класса префиксом в созданном коде. |
| Если необходимо, чтобы имя класса стало префиксом в сгенерированном коде, задайте возвращаемое значение |
Если значение переменной, приведенное к перечисляемому типу, не соответствует одному из значений перечисляемого типа:
Сгенерированный MEX сообщает об ошибке.
Созданный код C/C + + заменяет значение переменной перечисляемым значением по умолчанию.
Если не указано иное, значение по умолчанию для перечисляемого типа является первым значением в определении класса перечисления. Чтобы указать другое значение по умолчанию, добавьте собственное getDefaultValue к разделу методов. В этом примере первым значением элемента перечисления является LEDcolor.GREEN, но getDefaultValue возврат метода LEDcolor.RED:
classdef LEDcolor < int32 enumeration GREEN(1), RED(2) end methods (Static) function y = getDefaultValue() y = LEDcolor.RED; end end end
Чтобы указать, что перечисляемый тип определен во внешнем файле, укажите настраиваемый getHeaderFile способ. В этом примере указывается, что LEDcolor определен во внешнем файле my_LEDcolor.h.
classdef LEDcolor < int32 enumeration GREEN(1), RED(2) end methods(Static) function y=getHeaderFile() y='my_LEDcolor.h'; end end end
Необходимо предоставить my_LEDcolor.h. Например:
enum LEDcolor
{
GREEN = 1,
RED
};
typedef enum LEDcolor LEDcolor;По умолчанию созданное имя значения перечисляемого типа не включает префикс имени класса. Например:
enum LEDcolor
{
GREEN = 1,
RED
};
typedef enum LEDcolor LEDcolor;
Чтобы включить префикс имени класса, укажите addClassNameToEnumNames метод, возвращающий true. Например:
classdef LEDcolor < int32 enumeration GREEN(1), RED(2) end methods(Static) function y = addClassNameToEnumNames() y=true; end end end
В созданном определении типа перечисляемые имена значений включают префикс класса LEDcolor.
enum LEDcolor
{
LEDcolor_GREEN = 1,
LEDcolor_RED
};
typedef enum LEDcolor LEDcolor;