Преобразование определения enum в unsigned int

Согласно этому сообщению SO:
Каков размер перечисления в C?
типы enum имеют тип signed int.

Я хотел бы преобразовать определение enum из signed intв unsigned int.

Например, на моей платформе unsigned intимеет ширину 32 -бит. Я хочу создать перечисление:

typedef enum hardware_register_e
{
    REGISTER_STATUS_BIT = (1U << 31U)
} My_Register_Bits_t;

Мой компилятор жалуется, что приведенное выше определение выходит за пределы (, что и дляsigned int).

Как объявитьunsigned intenumценности?

Редактировать 1:

  1. Предпочтительно не расширять до 64 бит (, потому что код находится во встроенной системе ).
  2. Из-за ограничений навыков использование C++ в этом проекте запрещено.:-(

Редактировать 2:

  • Компилятор — IAR Embedded Workbench для ARM7.

7
задан Community 23 May 2017 в 12:02
поделиться