|
CPP enum с минусовыми значениями, насколько это правильно |
|
|
|
May 25 2017, 06:25
|
Профессионал
    
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848

|
Вопрос касается кода возврата функции, а именно удачно или нет она отработала. Если плюс - удачно, информация в коде возврата - справочная. Если минус - критичная ошибка, ф-ия не отработала. (?) Насколько такой подход (с отрицательным enum) правильный-феншуйный-политкорректный ? ps - minus_4 итд приведено для наглядности, в реале - ест-но - там симв. имя ошибки вроде eErr_ADC_Ready А реализовал так: Код enum TEnum { minus_4 = -4, minus_3, minus_2, minus_1, null_0 = 0, plus_1, plus_2, plus_3, plus_4 } my_enum;
. . .
int MyFun(void) { ... ... ... return(minus_2); ..... .... return(plus_3); }
. . .
RetCode = MyFun();
if( RetCode > 0 ) { . . . . ошибок нет, в RetCode в инф. о статусе выполнения. } else // минусы и 0 { . . . . разбор ошибок }
Сообщение отредактировал k155la3 - May 25 2017, 07:20
|
|
|
|
|
 |
Ответов
|
May 25 2017, 09:46
|
Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877

|
Цитата(k155la3 @ May 25 2017, 11:32)  Интересует "практика" использования отрицательных enum. нормальная практика. более интерено енум использовать с псевдонимами и комбинациями - например объявляеш флаги: еА = 1, еБ = 2, еВ=4. еХ=0x10 и тут же объявляеш псевдонимы комбинаций еЧеготоОбычное = еА | еХ eНеобычное = еБ еОшибка = еА |еБ |еХ тожесамое = eНеобычное | еЧеготоОбычное Меня другой момент использования енумов занимает - последнее время вижу что народ константы перечисления делает большими буквами, что обычно выглядит как макро.
Сообщение отредактировал AlexRayne - May 25 2017, 09:47
|
|
|
|
|
May 25 2017, 12:47
|

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

|
QUOTE (AlexRayne @ May 25 2017, 12:46)  Меня другой момент использования енумов занимает - последнее время вижу что народ константы перечисления делает большими буквами, что обычно выглядит как макро. Ну по смыслу такой enum эквивалентен набору макросов CODE #define TAG1 VALUE1 #define TAG2 (TAG1 + 1) #define TAG3 (TAG2 + 1) поэтому вполне ожидаемо и аналогичное правило записи имен.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
k155la3 CPP enum с минусовыми значениями May 25 2017, 06:25 novikovfb Почему бы и нет. Одно не понятно: чем запись minu... May 25 2017, 06:32 k155la3 Цитата(novikovfb @ May 25 2017, 09:32) По... May 25 2017, 06:35   k155la3 Цитата(AlexRayne @ May 25 2017, 12:46) . ... May 25 2017, 10:35    AlexRayne Цитата(k155la3 @ May 25 2017, 14:35) (1) ... May 25 2017, 12:27    k155la3 Цитата(Сергей Борщ @ May 25 2017, 15:47) ... May 26 2017, 07:25 AnatolyT Постоянно применяю, только не enum, а int. Обычная... May 25 2017, 08:00 k155la3 Цитата(AnatolyT @ May 25 2017, 11:00) . .... May 25 2017, 08:47 x893 По смыслу - enum это набор неизменяемых именованны... May 25 2017, 16:36 jcxz Список ошибок часто определяю так:
enum {ERR_1 = 1... May 25 2017, 20:47 AnatolyT Непонятно какие преимущества дает использование en... May 26 2017, 09:11 novikovfb Цитата(AnatolyT @ May 26 2017, 13:11) Неп... May 26 2017, 09:46  Сергей Борщ QUOTE (novikovfb @ May 26 2017, 12:46) пр... May 26 2017, 09:54 k155la3 Цитата(AnatolyT @ May 26 2017, 12:11) Неп... May 26 2017, 10:01  jcxz Цитата(k155la3 @ May 26 2017, 12:01) Кром... May 28 2017, 10:26 sigmaN По-моему идеально использовать enum по возможности... May 26 2017, 10:10 AlexRayne Цитата(sigmaN @ May 26 2017, 13:10) Кодty... May 26 2017, 13:33  k155la3 Цитата(AlexRayne @ May 26 2017, 16:33) si... May 26 2017, 14:38 AnatolyT Может быть чтобы не было соблазна добавить в начал... May 26 2017, 10:25 sigmaN ЦитатаМожет быть чтобы не было соблазна добавить в... May 26 2017, 10:58 sigmaN Цитатаа почему Вы большими буквами значения енума ... May 26 2017, 15:45 dxp QUOTE (sigmaN @ May 26 2017, 22:45) да эт... May 27 2017, 05:21  AlexRayne Цитата(dxp @ May 27 2017, 09:21) Скорее н... May 29 2017, 07:42 sigmaN Кстати вы заметили, как в С++11 поправили enum? Я ... May 28 2017, 09:13 dxp QUOTE (sigmaN @ May 28 2017, 16:13) Кстат... May 28 2017, 13:02 sigmaN ЦитатаThe enum type
The compiler will use the smal... May 28 2017, 11:17 jcxz Цитата(sigmaN @ May 28 2017, 13:17) The c... May 29 2017, 08:35 sigmaN ЦитатаТолько enum class - это, я понял, как раз со... May 28 2017, 13:50 sigmaN Ну тогда надо конкретизировать на примерах.
Я так... May 29 2017, 08:55 jcxz Цитата(sigmaN @ May 29 2017, 10:55) Я так... May 29 2017, 09:34 sigmaN Вот и я гворю: уточнять надо. Кто куда и кого расш... May 29 2017, 10:10
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|