この SO 投稿によると:
C の列挙型のサイズは?
列挙型にはsigned int
type があります。
signed int
列挙型定義を からに変換したいと思いunsigned int
ます。
たとえば、私のプラットフォームでは、anunsigned int
は 32 ビット幅です。列挙型を作成したい:
typedef enum hardware_register_e
{
REGISTER_STATUS_BIT = (1U << 31U)
} My_Register_Bits_t;
私のコンパイラは、上記の定義が範囲外であると不平を言っています(これは a の場合ですsigned int
)。
unsigned int
enum
値 を宣言するにはどうすればよいですか?
編集1:
- 64 ビットに拡張しないことをお勧めします (コードが組み込みシステムに存在するため)。
- スキルの制限により、このプロジェクトでは C++ は使用できません。:-(
編集2:
- コンパイラは、ARM7 用の IAR Embedded Workbench です。