什么是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
,它将是相同的大小,也是无符号的。