uint32和uint32_t之间的区别

Max*_*ter 73 c c++ uint32 uint32-t

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

在C/C++中uint32和uint32_t有什么区别?

它们依赖于OS吗?

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

谢谢

Wil*_*ell 99

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

  • typedef uint32_t uint32? (10认同)
  • @Rodrigo“大事”与执行“#define writef printf”相同。从技术上讲,事情会进展顺利。但这会带来不必要的混乱。你会惊讶地发现,随着时间的推移,你会经常看到像这样的简单类型定义,直到代码库出现像“typedef uint16_t uint32”这样的东西,此时宇宙就会爆炸。 (2认同)

Luc*_*ore 24

uint32_t 在标准中定义,在

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

namespace std {
//...
typedef unsigned integer type uint32_t; // optional
//...
}
Run Code Online (Sandbox Code Playgroud)

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

  • 更有可能作为一个typedef,在`<cstdint>`之前一直是无符号的32位整数. (3认同)