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

 
 
> CPP enum с минусовыми значениями, насколько это правильно
k155la3
сообщение May 25 2017, 06:25
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sigmaN
сообщение May 28 2017, 11:17
Сообщение #2


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Цитата
The enum type
The compiler will use the smallest type required to hold enum constants, preferring
signed rather than unsigned.
When IAR Systems language extensions are enabled, and in C++, the enum constants
and types can also be of the type long, unsigned long, long long, or unsigned
long long.
To make the compiler use a larger type than it would automatically use, define an enum
constant with a large enough value. For example:
/* Disables usage of the char type for enum */
enum Cards{Spade1, Spade2,
DontUseChar=257};

http://supp.iar.com/FilesPublic/UPDINFO/00...opmentGuide.pdf page 227



--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
- - _pv   Цитатаinteger constant expression whose value is r...   May 25 2017, 07:22
|- - k155la3   "integer constant expression whose value is r...   May 25 2017, 07:32
|- - AlexRayne   Цитата(k155la3 @ May 25 2017, 11:32) Инте...   May 25 2017, 09:46
|- - 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
|- - Сергей Борщ   QUOTE (AlexRayne @ May 25 2017, 12:46) Ме...   May 25 2017, 12:47
|- - 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
|- - 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


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

 


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


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