什么是u_int32_t?

可能重复:
C中使用的数据类型

嗨,我正在从Linux移植到Visual C ++。 我发现了很多错误。 什么是u_int32_t? 我在Visual C ++中找不到它? 它只在Linux中可用吗? 我应该在Visual C ++中使用哪种类型? 提前致谢 !!!

凯文

C99头文件stdint.h定义了不依赖于体系结构或编译器的类型。 unsigned int的含义可以不同(例如16位系统上的16位宽),但stdint.h中的那些类型具有特定的大小。

要么额外的下划线意外地滑入那里,要么有人为某些图书馆或其他任何人重新输入它们。 如果后者是这种情况,请包含您自己的一些标题,在该标题中包含stdint.h并确保在typedef uint32_t u_int32_t之后typedef uint32_t u_int32_t

这些不太标准的名称似乎是由BSD引入的: http : //lists.freedesktop.org/archives/release-wranglers/2004-August/000923.html

我不确定确切的类型,但根据名称,它看起来像一个无符号的32位整数 。 Visual C ++中的相应类型是unsigned int

还有其他别名,但这个名称就足够了。

这是一个无符号的int数据类型,保证为32位。 要使用它,您需要包含stdint.h 。

我不确定这是否可以在最新版本的VC ++中直接使用。 维基百科页面包含指向与Microsoft编译器一起使用的各种实现的链接(例如msinttypes )。

如果您确定默认的unsigned int类型总是32位,那么您可以在其位置上替换unsigned int 。 但是最好使用显式的32位数据类型。

不确定u_int32_t ,但uint32_t是根据1999版C标准的标准类型 ,来自

Visual C ++已经选择不采用C99,因此它不受支持。 如果你包含你可以使用DWORD ,它将是相同的大小,也是无符号的。