2

我正在将一些 C 代码移植到 C#。我看到了很多Word16,的Word32用法,还有UWord16and UWord32

我知道Word32它是一个无符号的 32 位int类型,但是有什么需要用不同的名字来写呢UWord32?我在这里错过了什么吗?Word32它在某些方面有所不同吗?

另外,WORD32我可以用 替换它在 C# 中的用法int吗?如果不是,为什么?

这个 Source说 WORD 是无符号整数类型。是的,来源是 Haskell,我找不到任何其他解释 datatype 的文档WORD

4

1 回答 1

4

但是有什么需要用不同的名称 UWord32 来编写它呢?

这是一个无符号的 32 位整数类型。

通常,您可以替换(移至 C#):

WORD32-> int ( Int32)

UWORD32-> uint( UInt32)

WORD16-> short ( Int16)

UWORD16-> ushort ( UInt16)

但是,鉴于您展示的命名方案,这都是基于我的期望的所有猜测。

请注意,如果您使用的是Windows 数据类型WORD->ushortDWORD-> uint。有符号类型是INT/ INT32-> int,然后是INT16-> shortINT64->long等。

话虽如此,所有这些选项都是用 C 或 C++ 定义的,而不是“本机”(语言定义)类型。WORD如果选择,您的代码可以定义为表示无符号 64 位整数。因此,您需要查看定义的来源(我在此处列出了 Windows API 标准)。


我知道 Word32 是无符号的 32 位 int 类型,但有什么需要用不同的名称 UWord32 编写它?

如果是这种情况,可能不需要对同一类型有两个定义。可能是您使用的两个标头定义的内容略有不同。同样,您需要检查您正在使用的定义这些类型的标头,并查看它们是如何指定的。

于 2012-09-07T17:02:14.760 回答