一样吗如果没有:有什么区别?
如果是,那您为什么需要这种类型?
最佳答案
uint32_t
(或C++ 11之前的编译器称为unsigned int
)保证为32位无符号整数; unsigned int
是编译器最喜欢调用int
的无符号整数,只要它满足标准要求(要求最小范围为0-65535)即可。
像unsigned int
一样,uint32_t
通常是一个整数,可以对当前体系结构进行快速操作(通常将其放入寄存器中),因此在需要“正常”的快速整数时使用。
如果需要精确宽度的整数(例如,),则使用2^32-1
。序列化到文件,或者当您需要该确切范围时,或者您依靠无符号溢出来准确发生在unsigned int
上。
例如,在16位处理器上,uint32_t
通常为16位宽,而unsigned int
必须为32位宽。
顺便提一句,正如@Marc Glisse指出的那样,尽管uint32_t
始终存在,但ojit_code不是必需的-特定的编译器实现可能不提供它。这主要是因为并非所有平台都可以轻松提供此类类型(通常具有奇怪字长的DSP)。
关于c++ - C++中的Uint32和unsigned int有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14911813/