C++ uint32和uint32之间的差异
可能重复:C++ uint32和uint32之间的差异,c++,c,uint32,uint32-t,C++,C,Uint32,Uint32 T,可能重复: 在C/C++中,uint32和uint32_t之间有什么区别 它们依赖于操作系统吗 在这种情况下,我应该使用一种还是另一种?uint32\u t是标准的,uint32不是。也就是说,如果包含或,您将得到uint32\u t的定义uint32在某些本地代码库中是一个typedef,但除非您自己定义它,否则不应该期望它存在。而自己定义是个坏主意。uint32\u t是在标准中定义的 18.4.1标题概要[cstdint.syn] uint32不是,它是一些编译器提供的快捷方式(可能是t
在C/C++中,uint32和uint32_t之间有什么区别 它们依赖于操作系统吗
在这种情况下,我应该使用一种还是另一种?
uint32\u t
是标准的,uint32
不是。也就是说,如果包含
或
,您将得到uint32\u t
的定义uint32
在某些本地代码库中是一个typedef,但除非您自己定义它,否则不应该期望它存在。而自己定义是个坏主意。uint32\u t
是在标准中定义的
18.4.1标题
概要[cstdint.syn]
uint32
不是,它是一些编译器提供的快捷方式(可能是typedef uint32\u t uint32
),以便于使用。您应该尽可能选择标准类型。在这种情况下,uint32\t
。你可以在这里找到答案:出于好奇-“\u t”是什么意思?是“type”的简写。更可能的情况是,typedef指的是在标准化之前已知为无符号32位整数的东西。但是“32位无符号整数”怎么可能有什么不同呢?typedef uint32\u t uint32?如果它不存在,你将无法编译你的程序,对吗?然后你可以像上面Max建议的那样做。这有什么大不了的?@Rodrigo“大不了的”和做#define writef printf
一样。从技术上讲,一切都会很好。但它带来了不必要的混乱。你会惊讶地发现,随着时间的推移,你会频繁地看到像这样的简单typedef变形,直到一个代码库有了像typedef uint16\u t uint32这样的东西,这时宇宙就爆炸了。是的,我已经梦想过了:)
namespace std {
//...
typedef unsigned integer type uint32_t; // optional
//...
}