是不是一样?如果没有:有什么区别?
如果是,那么你为什么需要这种类型?
如果是,那么你为什么需要这种类型?
uint32_t(或者是前C 11编译器调用它)保证是32位无符号整数; unsigned int是编译器最好调用unsigned int的无符号整数,只要它符合标准的要求(要求它为0-65535最小范围).
像int一样,unsigned int通常是一个对当前架构进行操作的整数(通常适用于寄存器),因此在需要“正常”,快速整数时使用.
当您需要一个精确的宽度整数时,会使用uint32_t,例如要序列化到文件,或者当您需要精确的范围,或者依靠无符号的溢出恰好发生在2 ^ 32-1.
例如,在16位处理器上,unsigned int通常将是16位宽,而uint32_t将必须是32位宽.
顺便提一下,正如@Marc Glisse所指出的那样,当unsigned int始终存在时,uint32_t不是强制的 – 特定的编译器实现可能不提供它.这主要是因为不是所有的平台都可以轻松提供这种类型(通常是具有奇怪的字大小的DSP).