Использование директивы #define для обозначения элементов case в конструкции switch

Деда, это только к двум параметрам так (он-офф, например, или 15 и 7), правильно понял?

Чо?
Можешь и так написать

enum class TAppState: uint8_t {Unknown=0, Running, Stopped=7, Paused, Error = 16};
TAppState AppState = TAppState::Unknown;   // состояние программы

Running будет равно 1, а Paused 8.
Если не задавать явно константы, они будут нумероваться от 0 последовательно.

enum class TAppState: uint8_t {Unknown=0, Running, Stopped=7, Paused, Error = 16};
TAppState AppState = TAppState::Unknown;   // состояние программы

Получается каждая переменная" Unknown, Running , будет весить 1 байт?

Там, где будут применяться. В самом enum они ничего не весят

Нет. Вся переменная AppState будет весить 1 байт

Значит можно использовать 255 “флагов”?

А как ты догадалась? О_О

256 - 0…255

1 лайк

Буква Л - логика :innocent:

enum activation_stage : uint8_t{
  KEY_ON,
  KEY_OFF,
};

activation_stage два байта, каждое значение по байту?

Ну да.)

enum class!!!

Я про ответ выше

такая - 4 байта, а вот так

enum activation_stage : uint8_t{
  KEY_ON,
  KEY_OFF,
};
2 байта

Аднака, надо почитать

:slightly_smiling_face:

1 лайк

activation_stage это ОБЬЯВЛЕНИЕ ТИПА. Само по себе оно ничего не весит. А вот переменная этого типа займёт 1 байт, так как подлежащий тип uint8_t занимает 1 байт

1 лайк

К сожалению с case это не так работает. Конечный результат будет зависить от того все ли номера идут в подряд. Если в подряд то в кодах это будет таблица джампов, которая сильно сокращает и ускоряет код. Иначе будет лист сравнений. На старом форуме была тема где всё это обсуждалось.

1 лайк

Доступ запрещён

Уже давно - года полтора назад точно туда заходил только через VPN. Но учебник там хороший

Запутал блин. Если само объявление ничего не занимает, то где оно хранится? Во флэш?

выдколи ти размовляишь украйнською? (транслит на русскую клаву)
ща нам с тобой по 40 тыр за дискредитацию влепят. :)) тут есть персонажи… :stuck_out_tongue_winking_eye: :stuck_out_tongue_winking_eye: