看起来 uint32_t
比 uint_fast32_t
更普遍(我意识到这是轶事证据)。不过我觉得这有悖常理。
几乎总是当我看到一个实现使用 uint32_t
时,它真正需要的是一个可以保存最多4,294,967,295个值的整数(通常是在65,535和4,294,967,295之间的下界)。
然后使用 uint32_t
似乎有些奇怪,因为不需要 正好32位保证,而 uint_fast32_t
的 ‘最快可用 > = 32位’保证似乎是完全正确的想法。而且,
虽然它通常是实现的,但 uint32_t
实际上并不能保证存在。
那么,为什么选择 uint32_t
呢? 是因为它更为人所知,还是因为它比其他的更有技术优势?