在C / C ++中uint32和uint32_t有什么区别?
他们是否依赖操作系统?
在哪种情况下,我应该使用其中一种?
由于
答案 0 :(得分:97)
uint32_t
是标准的,uint32
不是。也就是说,如果您加入<inttypes.h>
或<stdint.h>
,则会得到uint32_t
的定义。 uint32
是某些本地代码库中的typedef,但除非您自己定义,否则不应指望它存在。自己定义它是一个坏主意。
答案 1 :(得分:23)
uint32_t
在标准中定义,
<cstdint>
概要[cstdint.syn] namespace std {
//...
typedef unsigned integer type uint32_t; // optional
//...
}
uint32
不是,它是一些编译器提供的快捷方式(可能是typedef uint32_t uint32
),以方便使用。