我正在用C 編程一個4x4的棋盤游戲,在64位機器上使用位板。我只需要16位來實作棋盤。我是否應該使用:
- uint16_t
- uint16_t - 以減少使用的空間?
- uint64_t--如果使用64位整數的操作更快,我是否應該使用它們,并在必要時用0xFFFF(bitwise AND)來屏蔽數值?
- uint_fast16_t - 我剛剛發現了這個整數型別,但我不確定它是如何作業的,以及我是否也需要一個掩碼?
我不知道這是否有幫助,但我的處理器是。Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz 1.99 GHz
<uj5u.com熱心網友回復:
- 如果你想節省空間,使用
uint16_t. 。
- 如果你想節省時間,使用
uint_fast16_t. 。
uint64_t可能也是有用的,用于制作一個以8位元組邊界對齊的數值陣列。但這不太可能給你帶來什么好處,因為它的代價是浪費了為陣列分配的75%的記憶體,以及相關的快取性能的損失。
注意:如果你的庫將uint_fast16_t映射到uint64_t,你可能最終使用與uint64_t相同的型別。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/309422.html
標籤:
