|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
Enum и типы данных. Как задать тип значений явно, и какой тип будет при переполнении?06.08.2010, 20:13. Показов 17125. Ответов 25
Метки нет (Все метки)
Пытаюсь сделать функцию с передачей нескольких параметров,используя битовые операции. В качестве параметров думаю использовать не стандартные define-ы,а перечисление enum.
Можно ли задать тип значений для членов enum явно(мне в конкретном случае нужен unsigned int)? Что будет при битовой операции,если значение результата выходит за пределы типа (даже не уверен,возможно ли,но вроде бы да)?
0
|
|
| 06.08.2010, 20:13 | |
|
Ответы с готовыми решениями:
25
Какой тип данных использует VBA, если тип явно не объявлен Как понять, какое значение будет возвращено на выходе, как явно задать тип возвращаемого значения Как избавиться от необходимости явно указывать тип в enum? |
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||||||||
| 06.08.2010, 21:04 [ТС] | ||||||||
|
Второе число,скажем 0x0000FFFFF Их побитовое "или" даёт результат 0x1000FFFFF что равняется 4,296,015,871 и уже выходит за границы диапазона типа unsigned int. В принципе побитовое "и" так же хорошо будет работать и с этим числом,но какого оно типа? Есть ли тут "подводные камни"? Понятно,что подобные вопросы из-за пробелов в знаниях темы, так что не ругать ![]()
0
|
||||||||
|
|
||
| 06.08.2010, 21:30 | ||
|
а битовые операции, они на то и битовые, что действие происходит между двумя битами. один бит одного числа и один бит другого. соответственно никакой речи о выходах за пределы здесь не может быть. По поводу перечислений точно не знаю. Но sizeof возвращает 4 байта. Так что скорее всего это unsigned int.
2
|
||
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
| 06.08.2010, 21:38 [ТС] | |
|
Спасибо,по поводу операций разъяснил
![]() Про то,как задавать тип явно и возможно ли это,вопрос открыт.
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||||||
| 06.08.2010, 22:12 | ||||||
|
#pragma, именованные константы, которые должны складываться логическим ИЛИ определяются степенями двойки
1
|
||||||
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||||||
| 06.08.2010, 22:39 [ТС] | ||||||
|
Ещё тут одна мелочь возникла по ходу написания: какое поведение будет у программы,если задать значения посылаемых аргументов по умолчанию равным NULL? Я понимаю,что будет некий крах,но что именно? И ещё: почему 0 & 1 является нелегальной операцией?
Пример:
0
|
||||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 06.08.2010, 22:40 | ||
|
1
|
||
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
||||||||
| 06.08.2010, 22:44 | ||||||||
Добавлено через 46 секунд
0
|
||||||||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|||||||
| 06.08.2010, 22:49 | |||||||
1
|
|||||||
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
|
| 06.08.2010, 22:50 | |
|
fasked, однако ж я cout не для красоты написал.
1
|
|
| 06.08.2010, 22:50 | |
|
0
|
|
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||||||||
| 06.08.2010, 23:26 [ТС] | ||||||||
![]() Добавлено через 33 минуты То есть такая комбинация
0
|
||||||||
|
|
|||
| 06.08.2010, 23:37 | |||
|
Что касается битовых масок, то концептуально их делать через enum неправильно, потому как через их побитовую комбинацию получается значение, которое в enum'е отсутствует. Если посмотришь чужой софт на Си, то везде используют int'ы (в смысле базовые типы) и define'ы со значениями. На Си++ видел какие-то ацкие мегаконцепты, что создаются классы, а маска формируется через операцию "<<"
1
|
|||
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|||||||||||
| 06.08.2010, 23:49 [ТС] | |||||||||||
|
Почему я enum выбрал. у меня функция выглядит так (ещё не доделал)
код
И весь этот код сидит внутри класса,включая enum. А вызов функции выглядит так:
Вся идея этого enum-а - использовать как дополнение к конкретной функции,то есть более ни в каких операциях он не должен учавствовать. Ну не знаю,может,это и плохо,в любом случае можно сделать некое поле констант или ещё что. Вопрос был чисто теоретический
0
|
|||||||||||
|
|
|
| 06.08.2010, 23:57 | |
|
А с Define'ами-то что не получается? Должно быть всё то же самое
Добавлено через 2 минуты Чем enum принципиально лучше - его можно спрятать в класс, чего с define'ами не сделать. Я бы рядом с enum IS_CONFLICTING_DECLARATION_ARGS завёл "typedef unsigned trampampam" и для параметра args использовал бы этот тип. Когда описания типов лежат рядом - так хотябы будет проще код читать. В enum'е бы ещё завёл поле что-то типа "SEARCH_NULL = 0x00000000" и в качестве дефолтного значения args вписывал бы этот элемент
1
|
|
|
|
||
| 07.08.2010, 00:04 | ||
|
#define NULL 0 во всяком случае в Си++. понятное дело, что концептуально не правильно не указатели приравнивать к NULL, но с технической точки зрения какая разница, если это именованная константа.
0
|
||
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|||||||
| 07.08.2010, 00:09 [ТС] | |||||||
0
|
|||||||
| 07.08.2010, 00:09 | |
|
Помогаю со студенческими работами здесь
20
Какой тип данных надо задать для ввода произвольной функции F (x) с клавиатуры
Не могу явно преобразовать тип данных. Hibernate Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|