реклама на сайте
подробности

 
 
> Как узнать размер перечисления в C?
ViKo
сообщение May 21 2013, 12:54
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Допустим есть
Код
typedef enum {uno, dos, tres, quatro} NUMEROS_t;

Как узнать количество элементов в перечислении, чтобы использовать в программе? В частности, чтобы декрементировать-инкрементировать переменную этого типа.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение May 21 2013, 13:25
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



CODE
typedef enum {uno, dos, tres, quatro, pre-last=99, last=100} NUMEROS_t;
Что именно в этом перечислении вы хотели бы узнать? wink.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 21 2013, 13:42
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Сергей Борщ @ May 21 2013, 16:25) *
Код
typedef enum {uno, dos, tres, quatro, pre-last=99, last=100} NUMEROS_t;
Что именно в этом перечислении вы хотели бы узнать? wink.gif

Спасибо за иронию, Сергей Борщ. Когда я использую перечисления, подобные вашему (например, так я описываю альтернативные функции для STM32), я не скачу по ним инкрементом-декрементом. А для других применений, где набор сплошной и без повторов, мне просто нужно оставаться в пределах перечисления. Поэтому мне достаточно знать численные значения первого и последнего элементов.
Go to the top of the page
 
+Quote Post
DASM
сообщение May 21 2013, 14:04
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(ViKo @ May 21 2013, 17:42) *
Спасибо за иронию, Сергей Борщ. Когда я использую перечисления, подобные вашему (например, так я описываю альтернативные функции для STM32), я не скачу по ним инкрементом-декрементом. А для других применений, где набор сплошной и без повторов, мне просто нужно оставаться в пределах перечисления. Поэтому мне достаточно знать численные значения первого и последнего элементов.

Для таких "использований" enum (читай - подверженных ошибкам самого разного рода) enum не нужен вообще, лучше уж define , а еще лучще набор
const int uno = 0, dos = 1, tres = 2, quatro = 3 использовать
" альтернативные функции для STM32" я так и подумал что ноги оттуда растут - совершенно мерзкий стиль, макросы многократной вложенности чтобы дернуть ногой. Перебрали они явно
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 23:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01379 секунд с 7
ELECTRONIX ©2004-2016