81

可能重复:
不同整数类型之间的差异

C/C++ 中的uint32uint32_t有什么区别?

它们是否依赖于操作系统?

在哪种情况下我应该使用一种或另一种?

4

2 回答 2

110

uint32_t是标准的,uint32不是。也就是说,如果包含<inttypes.h>or <stdint.h>,您将得到 的定义uint32_tuint32是某些本地代码库中的 typedef,但除非您自己定义,否则不应期望它存在。自己定义是个坏主意。

于 2012-11-13T14:02:19.593 回答
25

uint32_t在标准中定义,在

18.4.1 标题<cstdint>概要 [cstdint.syn]

namespace std {
//...
typedef unsigned integer type uint32_t; // optional
//...
}

uint32不是,它是一些编译器(可能为typedef uint32_t uint32)提供的快捷方式,以便于使用。

于 2012-11-13T14:03:02.837 回答