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