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

 
 
> Как в C заставить enum считаться беззнаковым?
ViKo
сообщение Oct 5 2017, 09:38
Сообщение #1


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

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



В C (не C++) имею тип - перечисление с числами от 0 до 3.
Имею макрофункцию, где переменная типа того перечисления сдвигается на 30 влево.
При компиляции всплывает предупреждение, что результат выходит за пределы целого (в бит знака передвигается число).
Могу избавиться, дополнив ту же переменную в макрофункции явным приведением типа. Что странно - не результат сдвига, а саму переменную. И все чисто.
Но хотел бы прямо в перечислении задать беззнаковое целое. Явное задание чисел и дополнение ULL не помогает.
Можно заменить typedef enum { } на #define с дополнениями ULL, думаю, предупреждений не было бы. Не нравится.

В С++ вижу вариант enum : uint32_t { }.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
toweroff
сообщение Oct 6 2017, 20:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Завтра проверю, но вроде ж была возможность в Keil задавать опции для файла отдельно
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 02:30
Рейтинг@Mail.ru


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