我在64位机器上使用位板用c++编程4x4棋盘游戏。我只需要16位来实现这个板。我应该使用:
- uint16_t-减少已使用空间?
- uint64_t-如果操作(?)64位整数更快,我应该使用它们,并在必要时用0xFFFF(位与)掩码值吗?
- uint_fast16_t-我刚刚发现了这个整数类型,但我不确定它是如何工作的,如果我也需要一个掩码?
我不知道它是否有帮助,但我的处理器是:Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz 1.99 GHz
- 如果您希望节省空间,请使用
uint16_t
。 - 如果您希望节省时间,请使用
uint_fast16_t
。 uint64_t
对于以8字节边界对齐的值数组也可能有用。但是,这不太可能给您带来太多好处,因为它的代价是浪费为数组分配的75%的内存,以及相关的缓存性能损失。
注意:如果你的库将uint_fast16_t
映射到uint64_t
,你可能最终使用与uint64_t
相同的类型。