【发布时间】:2018-04-30 05:51:02
【问题描述】:
使用的富士通微控制器是 32 位的。 因此枚举存储也是 32 位的。但在我的项目中,实际上枚举元素不超过 256 个。 是否有任何编译器选项可以缩小枚举的存储空间?
【问题讨论】:
-
你使用什么编程语言?
使用的富士通微控制器是 32 位的。 因此枚举存储也是 32 位的。但在我的项目中,实际上枚举元素不超过 256 个。 是否有任何编译器选项可以缩小枚举的存储空间?
【问题讨论】:
您可以使用bit field 来在 8 个字中存储 256 个唯一值(256 位 / 32 位字 = 8),但是编译器将不再能够强制只设置一个位一次。但是,您可以轻松编写一个包装函数来清除所有先前的位,然后再设置一个。它可能最终会有点混乱,但是当您在这个级别开始使用这些技巧来节省内存时,往往会发生这种情况。
【讨论】:
您可以使用预处理器宏 (#define) 将符号名称映射到值。在不知道您的应用程序是什么的情况下,很难预测这是否明智:)
【讨论】: