我找不到一个直接的答案,但是在C语言中是否有可能强制指定
enum
的某种数据类型?例如,我有一个状态机的enum
,它只会保留一些状态,所以为了内存和性能问题,定义一个enum
为字节或更短的数据类型将是很好的选择。在C语言甚至Arduino IDE中是否有提供这种行为的方法?任何帮助都将不胜感激。
int
的平台上,它将占用所有空间。无论您有1个还是10000个状态枚举,都不重要,它仍然只是一个单一的int
。也许您应该考虑设计以在其他地方节省空间? - Some programmer dudeint
不会是32位。 - LundinArduino IDE
使用C++
,在最近几个版本中也使用了C++11
标准(我不确定确切的版本,但应该是从版本 1.6.8 开始)。因此可以定义具有其基础类型的枚举:enum Something : uint8_t { ... };
。更多信息:Enumeration declaration。 - KIIV