【发布时间】:2013-10-04 18:15:36
【问题描述】:
我有一个 char* 字符串进来。我需要相应地存储它。
字符串可以是任何这些值 { UK, GD, BD, ER, WR, FL}
如果我想将它们保留为枚举类型,最好使用哪种数据类型。像 6 个值 3 位就够了,但是 C 中如何存储 3 位呢?
【问题讨论】:
-
value:2不起作用?此外,对于 6 个值,两位是不够的。你需要 3 个。 -
“两个比特就够了”...你打算用其他六个比特做一些根本上重要的事情,还是无缘无故地让生活变得更艰难?
-
您打算如何将六个选项中的一个选项存储在两位中?
-
为什么要优化使用的位数?您是否在只有 4K 内存的平台上运行?只需让编译器使用尽可能多的位即可。 (很可能是 8、16 或 32 位)
-
除非您处于极度受限的内存条件下,或者需要存储数个 bajillion 这些,否则只需使用
int。如果你只允许编译器使用平台自然字长,你的代码会有更好的性能。