我最近在代码厨师上看到有人使用这个变量类型和库的代码。我想知道,如果有人可以解释使用的好处uint32_t,而不是int,float,double,等等。另外我应该用什么情况下/不使用它呢?
优点是 auint32_t始终保证为 32 位长,而不是长度取决于平台的基本类型。例如,虽然ints 在 x86 和 x86_64 上是 32 位,但在许多其他 64 位平台上它们是 64 位,并且比某些旧的和/或嵌入式体系结构上的要少。
使用 , 可能有益的情况之一uint32_t可能是当您直接从磁盘/网络读取二进制数据时。您始终可以将 4 个字节复制到 a 中uint32_t并确保它适合。(但是,您仍然需要注意例如字节顺序的差异。)
如果您只是想要可预测的上溢/下溢行为,您可能还需要使用 a uint32_t。或者,如果您正在执行以某种特定大小定义的计算,例如运行某些哈希算法时。
我唯一想知道的是为什么没有对应的float32_t和float64_t类型。:)