According to this SO post:
What is the size of an enum in C?
enum types have signed int
type.
I would like to convert an enum definition from signed int
to unsigned int
.
For example, on my platform an unsigned int
is 32-bits wide.
I want to create an enum:
typedef enum hardware_register_e
{
REGISTER_STATUS_BIT = (1U << 31U)
} My_Register_Bits_t;
My compiler is complaining that the above definition is out of range (which it is for a signed int
).
How do I declare unsigned int
enum
values?
Edit 1:
- The preference is not to expand to 64 bits (because the code resides in an embedded system).
- Due to skill limitations, C++ is not allowed for this project. :-(
Edit 2:
- Compiler is IAR Embedded Workbench for ARM7.