Для генерации кода, чтобы настроить перечисление, в разделе статических методов определения класса включите настраиваемые версии методов, перечисленных в этой таблице.
| Метод | Описание | Значение по умолчанию возвращено или задано | Когда использовать |
|---|---|---|---|
| Возвращает перечисленное значение по умолчанию. | Первое значение в определении класса перечисления. | Для значения по умолчанию, которое отличается от первого значения перечисления, задайте |
| Задает файл, который задает внешне заданный перечисляемый тип. |
| Чтобы использовать внешне определенный перечисленный тип, задайте |
| Определяет, становится ли имя класса префиксом в сгенерированном коде. |
| Если вы хотите, чтобы имя класса стало префиксом в сгенерированном коде, задайте возврат значение |
Если значение переменной, приведенное к перечисляемому типу, не совпадает с одним из перечисляемых значений типа:
Сгенерированный 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;