什么是u_int32_t?

时间:2011-03-02 05:42:13

标签: c++ c visual-c++

  

可能重复:
  Datatypes used in C

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

凯文

5 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:5)

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:2)

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

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

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

答案 4 :(得分:1)

不确定u_int32_tuint32_tstandard type according to the 1999 version of the C standard,来自<stdint.h>

Visual C ++已经选择不采用C99,因此不支持它。如果您添加<windows.h>,则可以使用DWORD,其大小相同且无符号。